Install problem to fake root directory

Problems building or running the engine, queries about how to use features etc.
Post Reply
bsa
Gnoblar
Posts: 4
Joined: Tue Jun 27, 2006 10:15 am
Location: Moscow, Russia

Install problem to fake root directory

Post by bsa »

I try to install OGRE on my box (I have OGRE already installed in /usr):

Code: Select all

$ tar -xjvf ogre-linux_osx-v1-2-1.tar.bz2
$ mkdir ogrenew/build
$ mkdir ogrenew/image
$ cd ogrenew/build
$ ../configure --with-platform=SDL --enable-double
$ make all
$ make DESTDIR="~/ogrenew/image" install
Result is error:

Code: Select all

g++ -shared -nostdlib /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/crtbeginS.o  .libs/OgreSDLConfig.o .libs/OgreSDLInput.o .libs/OgreSDLTimer.o .libs/OgreSDLPlatform.o  -Wl,--rpath -Wl,/usr/lib64/opengl/nvidia/lib -L/usr/local/lib64/opengl/nvidia/lib -L/usr/lib64/opengl/nvidia/lib -lGL -L/usr/lib64 -L/home/bsa/ogrenew/image/usr/local/lib64 -lGLU -L/usr/lib -L/home/bsa/ogrenew/image/usr/local/lib -L/usr/local/lib -lOgreMain -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../../ -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/ -L/usr/x86_64-pc-linux-gnu/bin -L/usr/x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/../../../lib64 -lCg -lILU -lIL -lz -ldl -lSDL -lpthread -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6 -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../../../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../.. -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/local/lib/gcc/x86_64-pc-linux-gnu/3.4.6 -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../../../lib64/crtn.o  -Wl,-z -Wl,defs -Wl,-soname -Wl,libOgrePlatform.so -o .libs/libOgrePlatform.so
.libs/OgreSDLInput.o: In function `Ogre::SDLInput::processBufferedMouse()':
../../../../PlatformManagers/SDL/src/OgreSDLInput.cpp:707: undefined reference to `Ogre::Cursor::addToX(double)'
../../../../PlatformManagers/SDL/src/OgreSDLInput.cpp:716: undefined reference to `Ogre::Cursor::addToY(double)'
collect2: ld returned 1 exit status
libtool: install: error: relink `libOgrePlatform.la' with the above command before installing it
make[5]: *** [install-platformLTLIBRARIES] Error 1
make[5]: Leaving directory `/home/bsa/ogrenew/build/PlatformManagers/SDL/src'
make[4]: *** [install-am] Error 2
make[4]: Leaving directory `/home/bsa/ogrenew/build/PlatformManagers/SDL/src'
make[3]: *** [install] Error 2
make[3]: Leaving directory `/home/bsa/ogrenew/build/PlatformManagers/SDL/src'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/home/bsa/ogrenew/build/PlatformManagers/SDL'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/bsa/ogrenew/build/PlatformManagers'
make: *** [install-recursive] Error 1
I check /usr/local/lib/libOgreMain.so.11.0.1: addToX and addToY are present:

Code: Select all

0000000000142520 T _ZN4Ogre6Cursor6addToXEd
0000000000142570 T _ZN4Ogre6Cursor6addToYEd
What is it and what can I do to solve it?
Last edited by bsa on Tue Jun 27, 2006 8:41 pm, edited 2 times in total.
bsa
Gnoblar
Posts: 4
Joined: Tue Jun 27, 2006 10:15 am
Location: Moscow, Russia

Post by bsa »

I found cause of this issue: I always try to install to the fake root directory (make DESTDIR="/home/bsa/ogrenew/image2" install), which needed for Gentoo Linux. In that case new Ogre version links with old one:

g++ -shared -nostdlib /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/crtbeginS.o .libs/OgreSDLConfig.o .libs/OgreSDLInput.o .libs/OgreSDLTimer.o .libs/OgreSDLPlatform.o -Wl,--rpath -Wl,/usr/lib64/opengl/nvidia/lib -L/home/bsa/ogrenew/image2/usr/lib64/opengl/nvidia/lib -L/usr/lib64/opengl/nvidia/lib -lGL -L/usr/lib64 -L/home/bsa/ogrenew/image2/usr/lib64 -lGLU -L/usr/lib -L/home/bsa/ogrenew/image2/usr/local/lib -L/usr/local/lib -lOgreMain -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../../ -L/var/tmp/portage/devil-1.6.7/work/DevIL-1.6.7/src-IL/src -L/usr/kde/3.5/lib64 -L/usr/qt/3/lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/ -L/usr/x86_64-pc-linux-gnu/bin -L/usr/x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/../../../lib64 -lCg -lILU -lIL -lz -ldl -lSDL -lpthread -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6 -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../../../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../.. -L/lib/../lib64 -L/usr/lib/../lib64 -L/home/bsa/ogrenew/image2/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6 -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/../../../../lib64/crtn.o -Wl,-z -Wl,defs -Wl,-soname -Wl,libOgrePlatform.so -o .libs/libOgrePlatform.so


You can see here what -L/usr/lib64 stay before -L/home/sergey/ogrenew/image2/usr/lib64. This cause linker searches libriaries in /usr/lib64 first.
I do not know, what is need to solve it. :(
Post Reply