Compiling error r5298 and v3.2.0 on Slackware

MajorLunaC

12-05-2014 23:43:00

Hi,

I've tried to compile MyGUI revision 5298 and v3.2.0 on Linux Slackware 14.1, but I keep getting the same error:


my-gui-code-r5298/Common/Base/BaseDemoManager.h:10:25: fatal error: BaseManager.h: No such file or directory
#include "BaseManager.h"
^
compilation terminated.
make[2]: *** [Demos/Demo_Controllers/CMakeFiles/Demo_Controllers.dir/DemoKeeper.cpp.o] Error 1


I'm not all that sure what's going wrong (fail to copy from Ogre or OpenGL?).

Also, I'm not too sure about the compiler flags I should be using. I'm aiming to compile it for VDrift which requires OGRE, but I also use OpenGL. So far, I've tried the following with no configure complaints except about the lib directory:


cmake -DCMAKE_INSTALL_PREFIX=/usr -DLIB_PREFIX=64 -DMYGUI_RENDERSYSTEM=ogre ..
cmake -DCMAKE_INSTALL_PREFIX=/usr -DLIB_INSTALL_DIR=/usr/lib64 -DMYGUI_RENDERSYSTEM=OpenGL ..
cmake -DCMAKE_INSTALL_PREFIX=/usr -DOGRE_LIB_DIRECTORY=/usr/lib64 -DMYGUI_RENDERSYSTEM=ogre,OpenGL ..


Does it truly accept both with -DMYGUI_RENDERSYSTEM=ogre,OpenGL or should it be another way? And what's the proper way to indicate the library directory (they keep changing it)?

Any help is much appreciated! :)

Altren

13-05-2014 09:46:31

Render system should be just -DMYGUI_RENDERSYSTEM=3 for Ogre.

MajorLunaC

13-05-2014 19:25:40

Well, it did work better using -DMYGUI_RENDERSYSTEM=3 , but I get 2 more errors:


[ 34%] Building CXX object Demos/Demo_Colour/CMakeFiles/Demo_Colour.dir/DemoKeeper.cpp.o
[ 34%] Building CXX object Demos/Demo_Controllers/CMakeFiles/Demo_Controllers.dir/State.cpp.o
[ 34%] Building CXX object Demos/Demo_Gui/CMakeFiles/Demo_Gui.dir/ColourWindowCellView.cpp.o
Linking CXX executable ../../bin/Demo_Controllers
Linking CXX executable ../../bin/Demo_Console
/usr/lib64/gcc/x86_64-slackware-linux/4.8.2/../../../../x86_64-slackware-linux/bin/ld: CMakeFiles/Demo_Controllers.dir/DemoKeeper.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
/usr/lib64/gcc/x86_64-slackware-linux/4.8.2/../../../../x86_64-slackware-linux/bin/ld: note: '_ZN5boost6system15system_categoryEv' is defined in DSO /usr/lib64/libboost_system.so.1.54.0 so try adding it to the linker command line
/usr/lib64/libboost_system.so.1.54.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [bin/Demo_Controllers] Error 1
make[1]: *** [Demos/Demo_Controllers/CMakeFiles/Demo_Controllers.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 35%] Building CXX object Demos/Demo_Gui/CMakeFiles/Demo_Gui.dir/DemoKeeper.cpp.o
/usr/lib64/gcc/x86_64-slackware-linux/4.8.2/../../../../x86_64-slackware-linux/bin/ld: CMakeFiles/Demo_Console.dir/DemoKeeper.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
/usr/lib64/gcc/x86_64-slackware-linux/4.8.2/../../../../x86_64-slackware-linux/bin/ld: note: '_ZN5boost6system15system_categoryEv' is defined in DSO /usr/lib64/libboost_system.so.1.54.0 so try adding it to the linker command line
/usr/lib64/libboost_system.so.1.54.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [bin/Demo_Console] Error 1
make[1]: *** [Demos/Demo_Console/CMakeFiles/Demo_Console.dir/all] Error 2
[ 35%] Building CXX object Demos/Demo_Gui/CMakeFiles/Demo_Gui.dir/EditorWindow.cpp.o
[ 35%] Building CXX object Demos/Demo_Colour/CMakeFiles/Demo_Colour.dir/EditPanel.cpp.o
[ 35%] Building CXX object Demos/Demo_Gui/CMakeFiles/Demo_Gui.dir/InformationWindow.cpp.o
[ 36%] Building CXX object Demos/Demo_Gui/CMakeFiles/Demo_Gui.dir/MainPanel.cpp.o
Linking CXX executable ../../bin/Demo_Colour
/usr/lib64/gcc/x86_64-slackware-linux/4.8.2/../../../../x86_64-slackware-linux/bin/ld: CMakeFiles/Demo_Colour.dir/DemoKeeper.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
/usr/lib64/gcc/x86_64-slackware-linux/4.8.2/../../../../x86_64-slackware-linux/bin/ld: note: '_ZN5boost6system15system_categoryEv' is defined in DSO /usr/lib64/libboost_system.so.1.54.0 so try adding it to the linker command line
/usr/lib64/libboost_system.so.1.54.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [bin/Demo_Colour] Error 1
make[1]: *** [Demos/Demo_Colour/CMakeFiles/Demo_Colour.dir/all] Error 2
Linking CXX executable ../../bin/Demo_Gui
/usr/lib64/gcc/x86_64-slackware-linux/4.8.2/../../../../x86_64-slackware-linux/bin/ld: CMakeFiles/Demo_Gui.dir/DemoKeeper.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
/usr/lib64/gcc/x86_64-slackware-linux/4.8.2/../../../../x86_64-slackware-linux/bin/ld: note: '_ZN5boost6system15system_categoryEv' is defined in DSO /usr/lib64/libboost_system.so.1.54.0 so try adding it to the linker command line
/usr/lib64/libboost_system.so.1.54.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [bin/Demo_Gui] Error 1
make[1]: *** [Demos/Demo_Gui/CMakeFiles/Demo_Gui.dir/all] Error 2
make: *** [all] Error 2
bash-4.2$


So I have to add a linker command line option to the right libboost library? My concern is that I'm using 64-bit Linux with 32-bit compatibility libraries (multilib), which is why I'm concerned about it not allowing me to specify any of the following options (32-bit compatibility libraries have often confused build systems on my system setup :( ):


-DLIBRARY_OUTPUT_PATH=/usr/lib64
-DLIB_SUFFIX=64
-DLIB_INSTALL_DIR=/usr/lib64
-DLIBRARY_OUTPUT_PATH=/usr/lib64

MajorLunaC

15-05-2014 19:10:53

I found the fix:


export LDFLAGS=-lboost_system

cmake -DCMAKE_INSTALL_PREFIX=/usr -DLIBRARY_OUTPUT_PATH=/usr/lib64 -DMYGUI_RENDERSYSTEM=3


Or

Edit /usr/lib64/pkgconfig/OGRE.pc:

Libs: -L${libdir} -lOgreMain -lpthread


TO


Libs: -L${libdir} -lOgreMain -lpthread -lboost_system


*Source: http://forum.freegamedev.net/viewtopic.php?f=64&t=4699

*Boost Error Reference:

https://svn.boost.org/trac/boost/ticket/7241

https://code.google.com/p/ogre-procedur ... ail?id=143