OpenTechEngine / OpenTechBFG

Engine based on (RB) Doom 3 BFG aiming to allow the creation of standalone games
Other
84 stars 11 forks source link

Engine looks for cegui related files in the wrong directory #84

Closed damiel closed 7 years ago

damiel commented 8 years ago

Okay, so after compiling OTE, with cegui enabled and using the bundled cegui version, the engine fails with following error messages:

CEGUI::GenericException in function 'CEGUI::DynamicModule::DynamicModule(const CEGUI::String&)' (/home/mkn/Development/vcs/OpenTechBFG/libs/cegui/CEGUI.git/cegui/src/DynamicModule.cpp:222) : Failed to load module 'libCEGUIRapidXMLParser.so': /usr/local/lib64/OpenTechEngine-0.8/libCEGUIRapidXMLParser.so: cannot open shared object file: No such file or directory terminate called after throwing an instance of 'CEGUI::GenericException' what(): CEGUI::GenericException in function 'CEGUI::DynamicModule::DynamicModule(const CEGUI::String&)' (/home/mkn/Development/vcs/OpenTechBFG/libs/cegui/CEGUI.git/cegui/src/DynamicModule.cpp:222) : Failed to load module 'libCEGUIRapidXMLParser.so': /usr/local/lib64/OpenTechEngine-0.8/libCEGUIRapidXMLParser.so: cannot open shared object file: No such file or directory

The engine looks for files under /usr/local/lib64 when it should look instead in the cmake output directory eg the cmake output directory is under /home/mkn/Development/build/OpenTechEngine containing the executable and the lib directory containig the "missing" files.

I have to manually create the OpenTechEngine-0.8 directory and create links inside it to the cegui libs for example ln -s /home/mkn/Development/build/OpenTechBFG/Default/lib/libCEGUIBase-0.so /usr/local/lib64/OpenTechEngine-0.8/ (and that for every single file).

I open and compile the project in qt-creator on Gentoo.

ghost commented 8 years ago

Sorry for getting a late reply. I'm having issues compiling on Windows as well. Usually I get Cegui issues if I try and compile from the zip download because of missing cegui stuff. If you cloned through git, remember to run the following git commands:

git submodule init git submodule update

Maybe that will help.

DanielGibson commented 8 years ago

this is gentoo's fault: they seem to set the --enable-new-dtags linker flag by default, which replaces the usage of RPATH with RUNPATH, which unfortunately (and contradicting the manpage) is not used by dlopen() (or at least the executable's RUNPATH is not used when trying to dlopen() in a lib linked against the executable).

So you need to find a way to really make it use RPATH, not RUNPATH. The relevant configuration for OTE is in the top-level CMakeLists.txt

DanielGibson commented 8 years ago

btw, as a workaround for your broken distro you could try setting the LD_LIBRARY_PATH environment variable to contain the engine's lib/ dir

damiel commented 7 years ago

The issue seems to be resolved with the newest changes in master regarding CMake/CPack, i dont rely anymore on manually symlinking libraries to make the engine run for me. So if everybody is content i am going to close this issue.