Page 2 of 2

Posted: Tue Jun 20, 2006 4:26 pm
by stiv
The compiler always searches in some standard places like /usr and /usr/include. The messages about skipping incompatible libs sound like warnings rather than errors. Are they stopping the compile?

Posted: Tue Jun 20, 2006 5:23 pm
by winfried
Yes, after a reboot blender now links ok (still some of does warnings but they seem indeed harmless).

Very strange, I have no idea why linking stopped before the recompile.

Anyway, I'm happy now :-)


Posted: Wed Jun 21, 2006 12:13 am
by artless
It's difficult to give a correct explanation. In another language it's worse. It was fine to disable OPENAL and OPENEXR (WITH_BF_OPENAL = 'false' WITH_BF_OPENEXR = 'false'). But there is no benefit on understanding the building process by this shortcut. If it can help someone. I cleaned my cvs-blender tree and start again with a new file.
  • # cp blender/config/
Because of "32 bit vs 64 bit problem" I have re-installed an OPENEXR(X86_64). I un-installed (lib64-openal + lib64-openal-devel) libraries. I recompiled them. Then I force to /usr the destination in the command line of ./configure (./configure --prefix=/usr --exec-prefix=/usr ) because /usr/local/lib was empty.
  • user # cd /Where/openal/has/been/downloaded
    user # tar -zxvf openal-0.0.8.tar.gz
    user # cd openal-0.0.8
    user # ./
    user # autoreconf -f
    user # ./configure --prefix=/usr --exec-prefix=/usr
    user # make
    user # su
    ==> root Password
    root $ make install
    ==> Libraries have been installed in: /usr/lib (instead of /usr/local/lib )
    root $ exit
  • user # cd /Where/freealut/has/been/downloaded
    user # tar -zxvf freealut-1.1.0.tar.gz
    user # cd freealut-1.1.0
    user # ./
    user # autoreconf -f
    user # ./configure --prefix=/usr --exec-prefix=/usr
    user # make
    user # su
    ==> root Password
    root $ make install
    ==> Libraries have been installed in: /usr/lib
    root $ exit
The resulting files were :
  • /usr/include/AL/al*.*
Then I Try to build blender with scons:
  • user # cd /location/of/cvs-blender/blender
    user # scons
or ( to compile only "buildinfo.c" )
  • user # scons BF_QUICK=buildinfo.c
    ERROR==> /usr/bin/ld: cannot find -l/usr/include/AL
iI's means that the library "AL" was not found on /usr/include by the linker (/usr/bin/ld). Modification of ==>
  • BF_OPENAL = '/usr/lib'
    BF_OPENAL_INC = '/usr'
    BF_OPENAL_LIB = '/usr/AL'
  • user # scons BF_QUICK=buildinfo.c
    ERROR==> /usr/bin/ld: cannot find -lGL
it's means that the library "GL" was not found by the linker (/usr/bin/ld). To find the library there are two Choice : first choice
  • search for file : ( for instance)
    result :path: /usr/X11R6/lib, /usr/X11R6/lib64
    add the missing path at LD_LIBRARY_PATH ( which is in /etc/profile)
    user# export LD_LIBRARY_PATH=/usr/X11R6/lib64:LD_LIBRARY_PATH
    I haven't tried this case because LD_LIBRARY_PATH seem not to be used by mandriva2006
second choice
  • modifying => ( in my case I had to add the lib64 pattern)
    # Mesa Libs should go here if your using them as well....
    BF_OPENGL = '/usr/X11R6'
    BF_OPENGL_INC = '${BF_OPENGL}/include'
    BF_OPENGL_LIBPATH = '/usr/X11R6/lib64'
    BF_OPENGL_LIB_STATIC = '${BF_OPENGL}/libGL.a ${BF_OPENGL}/libGLU.a ${BF_OPENGL}/libXxf86vm.a ${BF_OPENGL}/libX11.a ${BF_OPENGL}/libXi.a ${BF_OPENGL}/libXext.a ${BF_OPENGL}/libXxf86vm.a'
Let's try:
  • user # scons BF_QUICK=buildinfo.c
    ==>scons: done building targets.
No problemo !! 8)
  • user # scons
Super ! Let's run ! :D
  • user # /home/artless/cvs-blender/install/linux2/blender
    /home/artless/cvs-blender/install/linux2/blender: error while loading shared libraries: cannot open shared object file: No such file or directory
!!!!! is this library really not in the path for library ?
  • user # /sbin/ldconfig -p
    ==> libopenal is not in the list => /usr/lib/libopenal*.* are the needed files.
    ==> How adding the path to the /usr/lib/libopenal*.* files?
    ==> Add "/usr/lib" to "/etc/" and run ldconfig.
    user # su
    ===> password
    root # gedit /etc/
    ===> Add /usr/lib at the end
    root # ldconfig
    root # exit
Let's retry to run !
  • user # /home/artless/cvs-blender/install/linux2/blender
    Looking for installed Python version 2.4
    Loading required GL library /usr/X11R6/lib64/
    Segmentation Fault
:!: What ? Is it a joke ? What am I supposed to do now ? :evil:

Loading required GL library /usr/X11R6/lib64/

Posted: Wed Jun 21, 2006 8:30 am
by artless
It's strange because I have 2 files :
Then what is the problem ? Again a 32/64 bit mistake?

What about $ CFLAGS in the ? "x86_64-pc-linux-gnu" may a possible value for me.
My PC:( CPU=AMD Sempron(tm) Processor 2800+ 64bits) + (Mandriva2006 x86_64)

Posted: Thu Jun 22, 2006 6:11 pm
by epat
A segmentation fault is usually related to a memory access problem(I think). You could try running blender in debug mode but this probably won't give any useful hints as to what's wrong - I'd suggest you post it on the bug tracker if it's not directly related to the compile problems(i.e. you have problems with other 64bit builds too) -epat

Posted: Thu Jun 22, 2006 6:38 pm
by stiv
A segmentation fault comes from accessing memory that does not belong to you.

Better than posting bugs with a home-brew version of blender is to run it thru the debugger yourself and see where it is crashing.

Posted: Wed Jul 26, 2006 5:04 pm
by Lazareus
I recently had the same problem as you with compiling OpenEXR, with the "can't find ImathVec.h"
What I did to fix it, in the file that includes ImathVec.h, it's listed like this:
#include <ImathVec.h>
Change it to this:
#include "ImathVec.h".

once you get past that, a couple of similar messages occur for other OpenEXR header files, you just do the same thing, change the angle brackets to quotes.

Worked for me. Best of luck.