Linking failed libfreeorioncommon.so

Questions, problems and discussion about compiling FreeOrion.
Message
Author
User avatar
adesst
Space Floater
Posts: 18
Joined: Tue May 05, 2015 10:38 am

Linking failed libfreeorioncommon.so

#1 Post by adesst » Tue May 05, 2015 10:53 am

Hi, the make -d VERBOSE=1 -j2
failed with

Code: Select all

adesanto@xubuntu14:/opt/freeorion/server$ make -d VERBOSE=1 -j2 > build.log
../libfreeorioncommon.so: undefined reference to `boost::log::v2_mt_posix::sinks::text_file_backend::construct(boost::filesystem::path const&, std::_Ios_Openmode, unsigned long long, boost::log::v2_mt_posix::aux::light_function<bool ()> const&, bool)'
collect2: error: ld returned 1 exit status
make[2]: *** [freeoriond] Error 1
make[1]: *** [server/CMakeFiles/freeoriond.dir/all] Error 2
make: *** [all] Error 2
I am using Ubuntu 14.04.1 LTS
Linux xubuntu14 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

dpkg --get-selections | egrep -i "boost.*5|ogre"

libboost-atomic1.54-dev:amd64 install
libboost-atomic1.54.0:amd64 install
libboost-atomic1.55.0:amd64 install
libboost-chrono1.54-dev:amd64 install
libboost-chrono1.54.0:amd64 install
libboost-chrono1.55.0:amd64 install
libboost-context1.54.0:amd64 deinstall
libboost-context1.55.0:amd64 install
libboost-date-time1.54-dev:amd64 install
libboost-date-time1.54.0:amd64 install
libboost-date-time1.55.0:amd64 install
libboost-filesystem1.54-dev:amd64 install
libboost-filesystem1.54.0:amd64 install
libboost-filesystem1.55.0:amd64 install
libboost-graph-parallel1.54.0 deinstall
libboost-graph-parallel1.55.0 install
libboost-graph1.54.0:amd64 deinstall
libboost-graph1.55.0:amd64 install
libboost-iostreams1.54.0:amd64 install
libboost-iostreams1.55.0:amd64 install
libboost-locale1.54.0:amd64 deinstall
libboost-locale1.55.0:amd64 install
libboost-log1.54-dev install
libboost-log1.54.0 install
libboost-log1.55.0 install
libboost-math1.54.0:amd64 deinstall
libboost-math1.55.0:amd64 install
libboost-mpi-python1.54.0 deinstall
libboost-mpi-python1.55.0 install
libboost-mpi1.54.0 deinstall
libboost-mpi1.55.0 install
libboost-program-options1.54.0:amd64 deinstall
libboost-program-options1.55.0:amd64 install
libboost-python1.54.0:amd64 deinstall
libboost-python1.55.0 install
libboost-random1.54.0:amd64 deinstall
libboost-random1.55.0:amd64 install
libboost-regex1.54.0:amd64 deinstall
libboost-regex1.55.0:amd64 install
libboost-serialization1.54-dev:amd64 install
libboost-serialization1.54.0:amd64 install
libboost-serialization1.55.0:amd64 install
libboost-signals1.54.0:amd64 deinstall
libboost-signals1.55.0:amd64 install
libboost-system1.54-dev:amd64 install
libboost-system1.54.0:amd64 install
libboost-system1.55.0:amd64 install
libboost-test1.54.0:amd64 deinstall
libboost-test1.55.0:amd64 install
libboost-thread1.54-dev:amd64 install
libboost-thread1.54.0:amd64 install
libboost-thread1.55.0:amd64 install
libboost-timer1.54.0:amd64 deinstall
libboost-timer1.55.0:amd64 install
libboost-wave1.54.0:amd64 deinstall
libboost-wave1.55.0:amd64 install
libboost1.54-dev install
libogre-1.8-dev install
libogre-1.8.0:amd64 install
libogre-1.8.0-dbg:amd64 install

The make log is attached.
** Sorry the attachment is more than 1mb therefore no attachment
Last edited by adesst on Tue May 05, 2015 11:33 am, edited 1 time in total.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12247
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Linking failed libfreeorioncommon.so

#2 Post by Geoff the Medio » Tue May 05, 2015 11:32 am

adesst wrote:The make log is attached.
It is not.

What version of FreeOrion are you trying to build? In the latest version on github, Ogre is no longer a dependency.

Regardless, the boost requirement for the latest version is presently 1.56, which I think was in part due to Boost Log issues.

User avatar
adesst
Space Floater
Posts: 18
Joined: Tue May 05, 2015 10:38 am

Re: Linking failed libfreeorioncommon.so

#3 Post by adesst » Tue May 05, 2015 11:40 am

This is the repo

Code: Select all

adesst/freeorion
forked from freeorion/fo-svn-mirror

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Linking failed libfreeorioncommon.so

#4 Post by MatGB » Tue May 05, 2015 11:50 am

That's quite out of date if it's forked from the old SVN mirror, you want to be using the most recent version:
https://github.com/freeorion/freeorion

Beyond that I don't do compiling, sorry, g'luck ;-)
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

User avatar
adesst
Space Floater
Posts: 18
Joined: Tue May 05, 2015 10:38 am

Re: Linking failed libfreeorioncommon.so

#5 Post by adesst » Tue May 05, 2015 2:18 pm

I have git pull from the latest repo and sorry for not noticed at all that i was using the old repo.
Anyway the cmake autodetection went very well :D . The make process yet shows the same error
with boost log related :?: .

Code: Select all

/usr/bin/cmake -E cmake_progress_report /opt/freeorion-1/CMakeFiles 
Linking CXX executable ../../freeorionca
[ 71%] cd /opt/freeorion-1/client/AI && /usr/bin/cmake -E cmake_link_script CMakeFiles/freeorionca.dir/link.txt --verbose=1
Building CXX object server/CMakeFiles/freeoriond.dir/__/python/server/PythonServerFramework.cpp.o
cd /opt/freeorion-1/server && /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_SERVER -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -I/usr/local/include -I/opt/freeorion-1 -I/opt/freeorion-1/GG -I/usr/include/python2.7    -o CMakeFiles/freeoriond.dir/__/python/server/PythonServerFramework.cpp.o -c /opt/freeorion-1/python/server/PythonServerFramework.cpp
/usr/bin/c++    -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden    CMakeFiles/freeorionca.dir/__/__/AI/AIInterface.cpp.o CMakeFiles/freeorionca.dir/AIClientApp.cpp.o CMakeFiles/freeorionca.dir/__/__/AI/PythonAI.cpp.o CMakeFiles/freeorionca.dir/camain.cpp.o CMakeFiles/freeorionca.dir/__/ClientApp.cpp.o CMakeFiles/freeorionca.dir/__/ClientFSMEvents.cpp.o CMakeFiles/freeorionca.dir/__/__/combat/CombatSystem.cpp.o CMakeFiles/freeorionca.dir/__/__/network/ClientNetworking.cpp.o CMakeFiles/freeorionca.dir/__/__/python/PythonEmpireWrapper.cpp.o CMakeFiles/freeorionca.dir/__/__/python/PythonEnumWrapper.cpp.o CMakeFiles/freeorionca.dir/__/__/python/PythonLoggingWrapper.cpp.o CMakeFiles/freeorionca.dir/__/__/python/PythonUniverseWrapper.cpp.o  -o ../../freeorionca  -L/usr/local/lib -rdynamic ../../libfreeorioncommon.so ../../libfreeorionparse.so /usr/local/lib/libpython2.7.so /usr/local/lib/libboost_python.so /usr/local/lib/libboost_log.so -lpthread /usr/local/lib/libboost_chrono.so /usr/local/lib/libboost_date_time.so /usr/local/lib/libboost_filesystem.so /usr/local/lib/libboost_regex.so /usr/local/lib/libboost_serialization.so /usr/local/lib/libboost_signals.so /usr/local/lib/libboost_system.so /usr/local/lib/libboost_thread.so -lpthread /usr/local/lib/libz.so /usr/local/lib/libboost_log.so -Wl,-rpath,/opt/freeorion-1:/usr/local/lib:::::::: 
../../libfreeorioncommon.so: undefined reference to `boost::log::v2_mt_posix::sinks::text_file_backend::construct(boost::filesystem::path const&, std::_Ios_Openmode, unsigned long long, boost::log::v2_mt_posix::aux::light_function<bool ()> const&, bool)'
../../libfreeorioncommon.so: undefined reference to `FreeOrionVersionString()'
collect2: error: ld returned 1 exit status
make[2]: *** [freeorionca] Error 1
make[2]: Leaving directory `/opt/freeorion-1'
make[1]: *** [client/AI/CMakeFiles/freeorionca.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/usr/bin/cmake -E cmake_progress_report /opt/freeorion-1/CMakeFiles 
[ 71%] Building CXX object server/CMakeFiles/freeoriond.dir/__/python/server/PythonServer.cpp.o
cd /opt/freeorion-1/server && /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_SERVER -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -I/usr/local/include -I/opt/freeorion-1 -I/opt/freeorion-1/GG -I/usr/include/python2.7    -o CMakeFiles/freeoriond.dir/__/python/server/PythonServer.cpp.o -c /opt/freeorion-1/python/server/PythonServer.cpp
/usr/bin/cmake -E cmake_progress_report /opt/freeorion-1/CMakeFiles 79
[ 72%] Building CXX object server/CMakeFiles/freeoriond.dir/__/universe/UniverseGenerator.cpp.o
cd /opt/freeorion-1/server && /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_SERVER -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -I/usr/local/include -I/opt/freeorion-1 -I/opt/freeorion-1/GG -I/usr/include/python2.7    -o CMakeFiles/freeoriond.dir/__/universe/UniverseGenerator.cpp.o -c /opt/freeorion-1/universe/UniverseGenerator.cpp
Linking CXX executable ../freeoriond
cd /opt/freeorion-1/server && /usr/bin/cmake -E cmake_link_script CMakeFiles/freeoriond.dir/link.txt --verbose=1
/usr/bin/c++    -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden    CMakeFiles/freeoriond.dir/dmain.cpp.o CMakeFiles/freeoriond.dir/SaveLoad.cpp.o CMakeFiles/freeoriond.dir/ServerApp.cpp.o CMakeFiles/freeoriond.dir/ServerFSM.cpp.o CMakeFiles/freeoriond.dir/__/combat/CombatSystem.cpp.o CMakeFiles/freeoriond.dir/__/network/ServerNetworking.cpp.o CMakeFiles/freeoriond.dir/__/python/PythonEnumWrapper.cpp.o CMakeFiles/freeoriond.dir/__/python/PythonLoggingWrapper.cpp.o CMakeFiles/freeoriond.dir/__/python/PythonUniverseWrapper.cpp.o CMakeFiles/freeoriond.dir/__/python/server/PythonServerWrapper.cpp.o CMakeFiles/freeoriond.dir/__/python/server/PythonServerFramework.cpp.o CMakeFiles/freeoriond.dir/__/python/server/PythonServer.cpp.o CMakeFiles/freeoriond.dir/__/universe/UniverseGenerator.cpp.o  -o ../freeoriond  -L/usr/local/lib -rdynamic ../libfreeorioncommon.so ../libfreeorionparse.so /usr/local/lib/libpython2.7.so /usr/local/lib/libboost_python.so /usr/local/lib/libboost_log.so -lpthread /usr/local/lib/libboost_chrono.so /usr/local/lib/libboost_date_time.so /usr/local/lib/libboost_filesystem.so /usr/local/lib/libboost_regex.so /usr/local/lib/libboost_serialization.so /usr/local/lib/libboost_signals.so /usr/local/lib/libboost_system.so /usr/local/lib/libboost_thread.so -lpthread /usr/local/lib/libz.so /usr/local/lib/libboost_log.so -Wl,-rpath,/opt/freeorion-1:/usr/local/lib:::::::: 
../libfreeorioncommon.so: undefined reference to `boost::log::v2_mt_posix::sinks::text_file_backend::construct(boost::filesystem::path const&, std::_Ios_Openmode, unsigned long long, boost::log::v2_mt_posix::aux::light_function<bool ()> const&, bool)'
../libfreeorioncommon.so: undefined reference to `FreeOrionVersionString()'
collect2: error: ld returned 1 exit status
make[2]: *** [freeoriond] Error 1
make[2]: Leaving directory `/opt/freeorion-1'
make[1]: *** [server/CMakeFiles/freeoriond.dir/all] Error 2
make[1]: Leaving directory `/opt/freeorion-1'
make: *** [all] Error 2


I paste some of the last failed to linked log. I suspect that my libboost 1.54 has something broken.
Will try to compile libboost 1.58 instead of using libboost that comes from apt-get

User avatar
Dilvish
AI Lead, Programmer
Posts: 4685
Joined: Sat Sep 22, 2012 6:25 pm

Re: Linking failed libfreeorioncommon.so

#6 Post by Dilvish » Tue May 05, 2015 2:35 pm

The boost error looks a bit familiar, but if it is then it should be taken care of-- a few recent boost versions (1.54 being one of those) have been released with some missing include references, but we've been able to deal with that by adding the missing includes into our own header files. Are you doing this in a new/clean location? I recommend doing your git pull into a new location, not the same place where you had put the svn installation (it would be slightly tricky to get them aligned, and at the very least you would need to clear your CmakeCache.txt files).

If you continue having trouble, please post the steps you took to download the source and run cmake.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Vezzra
Release Manager, Design
Posts: 4608
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Linking failed libfreeorioncommon.so

#7 Post by Vezzra » Tue May 05, 2015 6:44 pm

Um, wouldn't he need at least boost 1.55 or even 1.56 for current HEAD? IIRC at least on OSX I can't build with a boost version < 1.55 ...

User avatar
Dilvish
AI Lead, Programmer
Posts: 4685
Joined: Sat Sep 22, 2012 6:25 pm

Re: Linking failed libfreeorioncommon.so

#8 Post by Dilvish » Tue May 05, 2015 7:15 pm

Vezzra wrote:Um, wouldn't he need at least boost 1.55 or even 1.56 for current HEAD? IIRC at least on OSX I can't build with a boost version < 1.55 ...
boost::log first appears in 1.54; I'm not aware of any requirements that only appear in later boost versions. Though of course I might be forgetting something; I am using boost 1.57 these days.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
adesst
Space Floater
Posts: 18
Joined: Tue May 05, 2015 10:38 am

Re: Linking failed libfreeorioncommon.so

#9 Post by adesst » Tue May 05, 2015 11:26 pm

Thank you for all the quickly responses.

Here how i compile my Freeorion:

Code: Select all

1. OS, Ubuntu 14.04.1 LTS, 
    Linux xubuntu14 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
2. Compile boost_1_58_0 by 
    $ sudo ./b2  -j2
3. Repo, forked from freeorion/freeorion and git pull at a new directory.
4. Run `cmake .` all autodetection went very well
5. Run `make VERBOSE=1 -j4

Scanning dependencies of target freeorion
make[2]: Entering directory `/opt/freeorion-1'
cd /opt/freeorion-1 && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /opt/freeorion-1 /opt/freeorion-1/client/AI /opt/freeorion-1 /opt/freeorion-1/client/AI /opt/freeorion-1/client/AI/CMakeFiles/freeorionca.dir/DependInfo.cmake --color=
make[2]: Entering directory `/opt/freeorion-1'
cd /opt/freeorion-1 && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /opt/freeorion-1 /opt/freeorion-1/server /opt/freeorion-1 /opt/freeorion-1/server /opt/freeorion-1/server/CMakeFiles/freeoriond.dir/DependInfo.cmake --color=
make[2]: Leaving directory `/opt/freeorion-1'
make -f server/CMakeFiles/freeoriond.dir/build.make server/CMakeFiles/freeoriond.dir/build
make[2]: Leaving directory `/opt/freeorion-1'
make -f client/AI/CMakeFiles/freeorionca.dir/build.make client/AI/CMakeFiles/freeorionca.dir/build
make[2]: Entering directory `/opt/freeorion-1'
make[2]: Entering directory `/opt/freeorion-1'
Linking CXX executable ../freeoriond
cd /opt/freeorion-1/server && /usr/bin/cmake -E cmake_link_script CMakeFiles/freeoriond.dir/link.txt --verbose=1
Linking CXX executable ../../freeorionca
cd /opt/freeorion-1/client/AI && /usr/bin/cmake -E cmake_link_script CMakeFiles/freeorionca.dir/link.txt --verbose=1
/usr/bin/c++    -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden    CMakeFiles/freeoriond.dir/dmain.cpp.o CMakeFiles/freeoriond.dir/SaveLoad.cpp.o CMakeFiles/freeoriond.dir/ServerApp.cpp.o CMakeFiles/freeoriond.dir/ServerFSM.cpp.o CMakeFiles/freeoriond.dir/__/combat/CombatSystem.cpp.o CMakeFiles/freeoriond.dir/__/network/ServerNetworking.cpp.o CMakeFiles/freeoriond.dir/__/python/PythonEnumWrapper.cpp.o CMakeFiles/freeoriond.dir/__/python/PythonLoggingWrapper.cpp.o CMakeFiles/freeoriond.dir/__/python/PythonUniverseWrapper.cpp.o CMakeFiles/freeoriond.dir/__/python/server/PythonServerWrapper.cpp.o CMakeFiles/freeoriond.dir/__/python/server/PythonServerFramework.cpp.o CMakeFiles/freeoriond.dir/__/python/server/PythonServer.cpp.o CMakeFiles/freeoriond.dir/__/universe/UniverseGenerator.cpp.o  -o ../freeoriond  -L/usr/local/lib -rdynamic ../libfreeorioncommon.so ../libfreeorionparse.so /usr/local/lib/libpython2.7.so /usr/local/lib/libboost_python.so /usr/local/lib/libboost_log.so -lpthread /usr/local/lib/libboost_chrono.so /usr/local/lib/libboost_date_time.so /usr/local/lib/libboost_filesystem.so /usr/local/lib/libboost_regex.so /usr/local/lib/libboost_serialization.so /usr/local/lib/libboost_signals.so /usr/local/lib/libboost_system.so /usr/local/lib/libboost_thread.so -lpthread /usr/local/lib/libz.so /usr/local/lib/libboost_log.so -Wl,-rpath,/opt/freeorion-1:/usr/local/lib 
/usr/bin/c++    -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden    CMakeFiles/freeorionca.dir/__/__/AI/AIInterface.cpp.o CMakeFiles/freeorionca.dir/AIClientApp.cpp.o CMakeFiles/freeorionca.dir/__/__/AI/PythonAI.cpp.o CMakeFiles/freeorionca.dir/camain.cpp.o CMakeFiles/freeorionca.dir/__/ClientApp.cpp.o CMakeFiles/freeorionca.dir/__/ClientFSMEvents.cpp.o CMakeFiles/freeorionca.dir/__/__/combat/CombatSystem.cpp.o CMakeFiles/freeorionca.dir/__/__/network/ClientNetworking.cpp.o CMakeFiles/freeorionca.dir/__/__/python/PythonEmpireWrapper.cpp.o CMakeFiles/freeorionca.dir/__/__/python/PythonEnumWrapper.cpp.o CMakeFiles/freeorionca.dir/__/__/python/PythonLoggingWrapper.cpp.o CMakeFiles/freeorionca.dir/__/__/python/PythonUniverseWrapper.cpp.o  -o ../../freeorionca  -L/usr/local/lib -rdynamic ../../libfreeorioncommon.so ../../libfreeorionparse.so /usr/local/lib/libpython2.7.so /usr/local/lib/libboost_python.so /usr/local/lib/libboost_log.so -lpthread /usr/local/lib/libboost_chrono.so /usr/local/lib/libboost_date_time.so /usr/local/lib/libboost_filesystem.so /usr/local/lib/libboost_regex.so /usr/local/lib/libboost_serialization.so /usr/local/lib/libboost_signals.so /usr/local/lib/libboost_system.so /usr/local/lib/libboost_thread.so -lpthread /usr/local/lib/libz.so /usr/local/lib/libboost_log.so -Wl,-rpath,/opt/freeorion-1:/usr/local/lib 
[b]../../libfreeorioncommon.so: undefined reference to `boost::log::v2_mt_posix::sinks::text_file_backend::construct(boost::filesystem::path const&, std::_Ios_Openmode, unsigned long long, boost::log::v2_mt_posix::aux::light_function<bool ()> const&, bool)'
collect2: error: ld returned 1 exit status
make[2]: *** [freeorionca] Error 1
make[2]: Leaving directory `/opt/freeorion-1'[/b]
make[1]: *** [client/AI/CMakeFiles/freeorionca.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[b]../libfreeorioncommon.so: undefined reference to `boost::log::v2_mt_posix::sinks::text_file_backend::construct(boost::filesystem::path const&, std::_Ios_Openmode, unsigned long long, boost::log::v2_mt_posix::aux::light_function<bool ()> const&, bool)'[/b]
collect2: error: ld returned 1 exit status
make[2]: *** [freeoriond] Error 1
make[2]: Leaving directory `/opt/freeorion-1'
make[1]: *** [server/CMakeFiles/freeoriond.dir/all] Error 2
make[2]: Leaving directory `/opt/freeorion-1'
make -f client/human/CMakeFiles/freeorion.dir/build.make client/human/CMakeFiles/freeorion.dir/build
make[2]: Entering directory `/opt/freeorion-1'
/usr/bin/cmake -E cmake_progress_report /opt/freeorion-1/CMakeFiles 
/usr/bin/cmake -E cmake_progress_report /opt/freeorion-1/CMakeFiles 16
/usr/bin/cmake -E cmake_progress_report /opt/freeorion-1/CMakeFiles 
[ 61%] /usr/bin/cmake -E cmake_progress_report /opt/freeorion-1/CMakeFiles 17
[ 62%] [ 62%] [ 63%] Building CXX object client/human/CMakeFiles/freeorion.dir/__/ClientApp.cpp.o
cd /opt/freeorion-1/client/human && /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_HUMAN -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -I/usr/local/include -I/opt/freeorion-1 -I/opt/freeorion-1/GG -I/usr/include/AL -I/opt/freeorion-1/PagedGeometry/include    -o CMakeFiles/freeorion.dir/__/ClientApp.cpp.o -c /opt/freeorion-1/client/ClientApp.cpp
Building CXX object client/human/CMakeFiles/freeorion.dir/HumanClientApp.cpp.o
cd /opt/freeorion-1/client/human && /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_HUMAN -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -I/usr/local/include -I/opt/freeorion-1 -I/opt/freeorion-1/GG -I/usr/include/AL -I/opt/freeorion-1/PagedGeometry/include    -o CMakeFiles/freeorion.dir/HumanClientApp.cpp.o -c /opt/freeorion-1/client/human/HumanClientApp.cpp
Building CXX object client/human/CMakeFiles/freeorion.dir/__/ClientFSMEvents.cpp.o
cd /opt/freeorion-1/client/human && /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_HUMAN -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -I/usr/local/include -I/opt/freeorion-1 -I/opt/freeorion-1/GG -I/usr/include/AL -I/opt/freeorion-1/PagedGeometry/include    -o CMakeFiles/freeorion.dir/__/ClientFSMEvents.cpp.o -c /opt/freeorion-1/client/ClientFSMEvents.cpp
Building CXX object client/human/CMakeFiles/freeorion.dir/chmain.cpp.o
cd /opt/freeorion-1/client/human && /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_HUMAN -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -I/usr/local/include -I/opt/freeorion-1 -I/opt/freeorion-1/GG -I/usr/include/AL -I/opt/freeorion-1/PagedGeometry/include    -o CMakeFiles/freeorion.dir/chmain.cpp.o -c /opt/freeorion-1/client/human/chmain.cpp
/usr/bin/cmake -E cmake_progress_report /opt/freeorion-1/CMakeFiles 
[ 63%] Building CXX object client/human/CMakeFiles/freeorion.dir/HumanClientFSM.cpp.o
cd /opt/freeorion-1/client/human && /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_HUMAN -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -I/usr/local/include -I/opt/freeorion-1 -I/opt/freeorion-1/GG -I/usr/include/AL -I/opt/freeorion-1/PagedGeometry/include    -o CMakeFiles/freeorion.dir/HumanClientFSM.cpp.o -c /opt/freeorion-1/client/human/HumanClientFSM.cpp
In file included from /opt/freeorion-1/client/human/HumanClientApp.h:9:0,
                 from /opt/freeorion-1/client/human/HumanClientApp.cpp:6:
/opt/freeorion-1/GG/GG/SDL/SDLGUI.h:34:22: fatal error: SDL2/SDL.h: No such file or directory
 #include <SDL2/SDL.h>
                      ^
compilation terminated.
In file included from /opt/freeorion-1/client/human/HumanClientApp.h:9:0,
                 from /opt/freeorion-1/client/human/chmain.cpp:3:
/opt/freeorion-1/GG/GG/SDL/SDLGUI.h:34:22: fatal error: SDL2/SDL.h: No such file or directory
 #include <SDL2/SDL.h>
                      ^
compilation terminated.
In file included from /opt/freeorion-1/client/human/HumanClientApp.h:9:0,
                 from /opt/freeorion-1/client/human/HumanClientFSM.cpp:3:
/opt/freeorion-1/GG/GG/SDL/SDLGUI.h:34:22: fatal error: SDL2/SDL.h: No such file or directory
 #include <SDL2/SDL.h>
                      ^
compilation terminated.
/usr/bin/cmake -E cmake_progress_report /opt/freeorion-1/CMakeFiles 18
[ 64%] Building CXX object client/human/CMakeFiles/freeorion.dir/__/__/combat/CombatSystem.cpp.o
cd /opt/freeorion-1/client/human && /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_HUMAN -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -I/usr/local/include -I/opt/freeorion-1 -I/opt/freeorion-1/GG -I/usr/include/AL -I/opt/freeorion-1/PagedGeometry/include    -o CMakeFiles/freeorion.dir/__/__/combat/CombatSystem.cpp.o -c /opt/freeorion-1/combat/CombatSystem.cpp
make[2]: *** [client/human/CMakeFiles/freeorion.dir/chmain.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [client/human/CMakeFiles/freeorion.dir/HumanClientApp.cpp.o] Error 1
make[2]: *** [client/human/CMakeFiles/freeorion.dir/HumanClientFSM.cpp.o] Error 1
make[2]: Leaving directory `/opt/freeorion-1'
make[1]: *** [client/human/CMakeFiles/freeorion.dir/all] Error 2
make[1]: Leaving directory `/opt/freeorion-1'
make: *** [all] Error 2

5. CMakeCache.txt is attached
I noticed that SDL2 has to be installed but the same error of boost::log etc still showing.
Attachments
CMakeCache.txt
(37.87 KiB) Downloaded 82 times

User avatar
Dilvish
AI Lead, Programmer
Posts: 4685
Joined: Sat Sep 22, 2012 6:25 pm

Re: Linking failed libfreeorioncommon.so

#10 Post by Dilvish » Wed May 06, 2015 2:00 am

ok, it looks like you are running into some of the same issues I ran into when I first tried building FO with boost 1.57, described mostly in this post. One thing mentioned only obliquely there is the library name issue-- looking over your CMakeCache.txt file I notice that your boost log library is "libboost_log.so", and the compiler is complaining about not having the "mt" (multi-threaded) version. Or it might be more precise to just say 'name' rather than version, because my recollection is that that was the only difference. I was building boost myself so in addition to the default '--layout=system' bjam option which installs the libraries named as you have them, I also installed with '--layout=tagged' to get the 'mt' versions/names. The two different versions of the library have the same number of bytes, I really think it is just a naming thing, so you could try adding a symlink

Code: Select all

sudo ln -s /usr/local/lib/libboost_log.so /usr/local/lib/libboost_log-mt.so
and see if that clears it up.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
adesst
Space Floater
Posts: 18
Joined: Tue May 05, 2015 10:38 am

Re: Linking failed libfreeorioncommon.so

#11 Post by adesst » Wed May 06, 2015 1:06 pm

Hurray! Freeorion is now compiled and running. **Sigh** after four days of struggling but really worths.
This is a warning that this post going to be a very long post. Hope it helps other that have the similar troubles.
Dilvish wrote:ok, it looks like you are running into some of the same issues I ran into when I first tried building FO with boost 1.57, described mostly in this post. One thing mentioned only obliquely there is the library name issue-- looking over your CMakeCache.txt file I notice that your boost log library is "libboost_log.so", and the compiler is complaining about not having the "mt" (multi-threaded) version. Or it might be more precise to just say 'name' rather than version, because my recollection is that that was the only difference. I was building boost myself so in addition to the default '--layout=system' bjam option which installs the libraries named as you have them, I also installed with '--layout=tagged' to get the 'mt' versions/names. The two different versions of the library have the same number of bytes, I really think it is just a naming thing, so you could try adding a symlink

Code: Select all

sudo ln -s /usr/local/lib/libboost_log.so /usr/local/lib/libboost_log-mt.so
and see if that clears it up.
Thanks for the tips.

I recompile boost_1_58_0 with
$ pwd
/opt/freeorion/FreeOrion/boost_1_58_0
$ ./b2 threading=multi --layout=tagged -j4

Everything works as expected and the *-mt libs are generated. Re-run ccmake and modify

Code: Select all

the libboost include dir to
/opt/freeorion/FreeOrion/boost_1_58_0
and library dir to 
/opt/freeorion/FreeOrion/boost_1_58_0/stage/lib
Where the boost1.58 libs are  generated
And now the Freeorion build

$ pwd
/opt/freeorion-1 # repo is to freeorion/freeorion
$ make VERBOSE=1 -j4

Let the fun begin! The first stop

Code: Select all

In file included from /opt/freeorion-1/combat/../util/Serialize.ipp:16:0,
                 from /opt/freeorion-1/combat/CombatEvent.cpp:7:
/opt/freeorion/FreeOrion/boost_1_58_0/boost/serialization/deque.hpp: In function ‘void boost::serialization::load(Archive&, std::deque<U, Allocator>&, unsigned int)’:
/opt/freeorion/FreeOrion/boost_1_58_0/boost/serialization/deque.hpp:51:11: error: ‘library_version_type’ in namespace ‘boost::archive’ does not name a type
     const boost::archive::library_version_type library_version = ar.get_library_version();
           ^
/opt/freeorion/FreeOrion/boost_1_58_0/boost/serialization/deque.hpp:57:8: error: ‘library_version_type’ is not a member of ‘boost::archive’
     if(boost::archive::library_version_type(3) < library_version){
        ^
/opt/freeorion/FreeOrion/boost_1_58_0/boost/serialization/deque.hpp:57:50: error: ‘library_version’ was not declared in this scope
     if(boost::archive::library_version_type(3) < library_version){
                                                  ^
In file included from /opt/freeorion/FreeOrion/boost_1_58_0/boost/system/system_error.hpp:14:0,
                 from /opt/freeorion/FreeOrion/boost_1_58_0/boost/thread/exceptions.hpp:22,
                 from /opt/freeorion/FreeOrion/boost_1_58_0/boost/thread/pthread/mutex.hpp:14,
                 from /opt/freeorion/FreeOrion/boost_1_58_0/boost/thread/mutex.hpp:16,
                 from /opt/freeorion-1/combat/../universe/EnableTemporaryFromThis.h:8,
                 from /opt/freeorion-1/combat/../universe/TemporaryPtr.h:5,
                 from /opt/freeorion-1/combat/../universe/ObjectMap.h:15,
                 from /opt/freeorion-1/combat/../universe/Universe.h:6,
                 from /opt/freeorion-1/combat/CombatEvent.cpp:9:
/opt/freeorion/FreeOrion/boost_1_58_0/boost/system/error_code.hpp: At global scope:
/opt/freeorion/FreeOrion/boost_1_58_0/boost/system/error_code.hpp:221:36: warning: ‘boost::system::posix_category’ defined but not used [-Wunused-variable]
     static const error_category &  posix_category = generic_category();
                                    ^
/opt/freeorion/FreeOrion/boost_1_58_0/boost/system/error_code.hpp:222:36: warning: ‘boost::system::errno_ecat’ defined but not used [-Wunused-variable]
     static const error_category &  errno_ecat     = generic_category();
                                    ^
/opt/freeorion/FreeOrion/boost_1_58_0/boost/system/error_code.hpp:223:36: warning: ‘boost::system::native_ecat’ defined but not used [-Wunused-variable]
     static const error_category &  native_ecat    = system_category();
Ok, i see this is more the libboost problem. Getting inside of the code of serialization/deque.hpp i realized that the file has
missing the include files. Simply add

Code: Select all

#include <boost/serialization/type_info_implementation.hpp>
#include <boost/archive/basic_archive.hpp>
And recompile with

Code: Select all

$ pwd
/opt/freeorion/FreeOrion/boost_1_58_0/
$ ./b2 --with-serialization threading=multi 
$ pwd
/opt/freeorion-1
$ /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_COMMON -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fPIC -I/opt/freeorion/FreeOrion/boost_1_58_0 -I/opt/freeorion-1 -I/opt/freeorion-1/GG    -fvisibility=hidden -o CMakeFiles/freeorioncommon.dir/combat/CombatEvent.cpp.o -c /opt/freeorion-1/combat/CombatEvent.cpp
Linking sofar so good and suddenly boom! Second stop :o

Code: Select all

Linking CXX shared library ../libfreeorionparse.so
cd /opt/freeorion-1/parse && /usr/bin/cmake -E cmake_link_script CMakeFiles/freeorionparse.dir/link.txt --verbose=1
/usr/bin/c++  -fPIC  -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -O3   -shared -Wl,-soname,libfreeorionparse.so -o ../libfreeorionparse.so CMakeFiles/freeorionparse.dir/AlignmentsParser.cpp.o CMakeFiles/freeorionparse.dir/BuildingsParser.cpp.o CMakeFiles/freeorionparse.dir/ConditionParser1.cpp.o CMakeFiles/freeorionparse.dir/ConditionParser2.cpp.o CMakeFiles/freeorionparse.dir/ConditionParser3.cpp.o CMakeFiles/freeorionparse.dir/ConditionParser4.cpp.o CMakeFiles/freeorionparse.dir/ConditionParser5.cpp.o CMakeFiles/freeorionparse.dir/ConditionParser6.cpp.o CMakeFiles/freeorionparse.dir/ConditionParser7.cpp.o CMakeFiles/freeorionparse.dir/ConditionParser.cpp.o CMakeFiles/freeorionparse.dir/Double.cpp.o CMakeFiles/freeorionparse.dir/DoubleComplexValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/DoubleValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/EffectParser1.cpp.o CMakeFiles/freeorionparse.dir/EffectParser2.cpp.o CMakeFiles/freeorionparse.dir/EffectParser3.cpp.o CMakeFiles/freeorionparse.dir/EffectParser4.cpp.o CMakeFiles/freeorionparse.dir/EffectParser.cpp.o CMakeFiles/freeorionparse.dir/EmpireStatsParser.cpp.o CMakeFiles/freeorionparse.dir/EncyclopediaParser.cpp.o CMakeFiles/freeorionparse.dir/EnumParser.cpp.o CMakeFiles/freeorionparse.dir/FieldsParser.cpp.o CMakeFiles/freeorionparse.dir/FleetPlansParser.cpp.o CMakeFiles/freeorionparse.dir/Int.cpp.o CMakeFiles/freeorionparse.dir/IntComplexValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/IntValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/ItemsParser.cpp.o CMakeFiles/freeorionparse.dir/KeymapParser.cpp.o CMakeFiles/freeorionparse.dir/Label.cpp.o CMakeFiles/freeorionparse.dir/Lexer.cpp.o CMakeFiles/freeorionparse.dir/MonsterFleetPlansParser.cpp.o CMakeFiles/freeorionparse.dir/Parse.cpp.o CMakeFiles/freeorionparse.dir/PlanetEnvironmentValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/PlanetSizeValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/PlanetTypeValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/ReportParseError.cpp.o CMakeFiles/freeorionparse.dir/ShipDesignsParser.cpp.o CMakeFiles/freeorionparse.dir/ShipHullsParser.cpp.o CMakeFiles/freeorionparse.dir/ShipPartsParser.cpp.o CMakeFiles/freeorionparse.dir/SpecialsParser.cpp.o CMakeFiles/freeorionparse.dir/SpeciesParser.cpp.o CMakeFiles/freeorionparse.dir/StarTypeValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/StringComplexValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/StringValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/TechsParser.cpp.o CMakeFiles/freeorionparse.dir/Tokens.cpp.o CMakeFiles/freeorionparse.dir/UniverseObjectTypeValueRefParser.cpp.o CMakeFiles/freeorionparse.dir/ValueRefParserImpl.cpp.o 
CMakeFiles/freeorionparse.dir/ConditionParser4.cpp.o: file not recognized: File truncated
collect2: error: ld returned 1 exit status
make[2]: *** [libfreeorionparse.so] Error 1
make[2]: Leaving directory `/opt/freeorion-1'
make[1]: *** [parse/cmakefiles/freeorionparse.dir/all] Error 2
make[1]: Leaving directory `/opt/freeorion-1'
make: *** [all] Error 2
Simply remove the file and re build by using

Code: Select all

$ pwd
/opt/freeorion-1 # this is my main freeorion dir
$ rm parse/cmakefiles/freeorionparse.dir/ConditionParser4.cpp.o
$ make -f parse/CMakeFiles/freeorionparse.dir/build.make parse/CMakeFiles/freeorionparse.dir/build

Linking CXX shared library ../libfreeorionparse.so
Yeah! No not so soon :P Third stop.

Code: Select all

Building CXX object client/human/CMakeFiles/freeorion.dir/chmain.cpp.o
cd /opt/freeorion-1/client/human && /usr/bin/c++   -DBOOST_ALL_DYN_LINK -DENABLE_BINRELOC -DFREEORION_BUILD_HUMAN -DFREEORION_LINUX -Wno-deprecated -Wall -Wno-parentheses -fvisibility=hidden -I/opt/freeorion/FreeOrion/boost_1_58_0 -I/opt/freeorion-1 -I/opt/freeorion-1/GG -I/usr/include/AL -I/opt/freeorion-1/PagedGeometry/include    -o CMakeFiles/freeorion.dir/chmain.cpp.o -c /opt/freeorion-1/client/human/chmain.cpp
/opt/freeorion-1/client/human/chmain.cpp: In function ‘int mainSetupAndRun()’:
/opt/freeorion-1/client/human/chmain.cpp:203:13: warning: unused variable ‘colour_depth’ [-Wunused-variable]
         int colour_depth = GetOptionsDB().Get<int>("color-depth");
             ^
/opt/freeorion-1/client/human/chmain.cpp:208:13: warning: unused variable ‘width’ [-Wunused-variable]
         int width(width_height.first), height(width_height.second);
             ^
/opt/freeorion-1/client/human/chmain.cpp:208:40: warning: unused variable ‘height’ [-Wunused-variable]
         int width(width_height.first), height(width_height.second);
                                        ^
/opt/freeorion-1/client/human/chmain.cpp:212:13: warning: unused variable ‘fullscreen_monitor_id’ [-Wunused-variable]
         int fullscreen_monitor_id = GetOptionsDB().Get<int>("fullscreen-monitor-id");
             ^
/opt/freeorion-1/client/human/HumanClientApp.cpp: In constructor ‘HumanClientApp::HumanClientApp(int, int, bool, const string&, int, int, bool, bool)’:
/opt/freeorion-1/client/human/HumanClientApp.cpp:235:5: error: ‘keymaps’ is not a member of ‘parse’
     parse::keymaps(GetResourceDir() / "keymaps.txt", named_key_maps);
I fixed the include dir traverse

Code: Select all

from
#include "../parse/Parse.h"

to
#include "../../parse/Parse.h"
Now it is 100% compiled :D :D :D :D YEAH!!

Thanks to all of you.

User avatar
Dilvish
AI Lead, Programmer
Posts: 4685
Joined: Sat Sep 22, 2012 6:25 pm

Re: Linking failed libfreeorioncommon.so

#12 Post by Dilvish » Wed May 06, 2015 4:06 pm

adesst wrote:Hurray! Freeorion is now compiled and running. **Sigh** after four days of struggling but really worths.
I'm really glad to hear you got it working, and thanks a bunch for posting this.
I fixed the include dir traverse

Code: Select all

from
#include "../parse/Parse.h"

to
#include "../../parse/Parse.h"
Thanks for catching that; I've committed that now.
Getting inside of the code of serialization/deque.hpp i realized that the file has
missing the include files. Simply add

Code: Select all

#include <boost/serialization/type_info_implementation.hpp>
#include <boost/archive/basic_archive.hpp>
I thought they were supposed to have that fixed with 1.58! :lol:
Good to know about. I expect the same kind of internal-to-FO fix as had worked for boost 1.57 would probably work here, so that we wouldn't need people to actually recompile boost. If one of those other people come to this post before we've gotten around to testing and including this fix in the mainline FO code, here it is: In util/Process.h, after the very similar #if #endif at top for BOOST_VERSION == 105700, try adding

Code: Select all

#if BOOST_VERSION == 105800
#include <boost/serialization/type_info_implementation.hpp> // This
#endif
I think there is a decent chance that the above is enough (at least when being dealt with in this manner), though it is also possible it will need the extra "#include <boost/archive/basic_archive.hpp>"

I will try to getting around to compiling boost 1.58 and giving this a test one of these days.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

Single Player
Space Floater
Posts: 15
Joined: Sun Jul 06, 2014 7:24 pm

Re: Linking failed libfreeorioncommon.so

#13 Post by Single Player » Wed May 06, 2015 10:37 pm

Hi everybody

I also try to build current freeorion git on a recent debian jessie amd64 installation -- which still fails with a linking error adesst also listed in his third post here.

Code: Select all

Linking CXX executable ../../freeorion
CMakeFiles/freeorion.dir/chmain.cpp.o: In function `mainConfigOptionsSetup(std::vector<std::string, std::allocator<std::string> > const&)':
chmain.cpp:(.text+0xe02): undefined reference to `FreeOrionVersionString()'
chmain.cpp:(.text+0x10ff): undefined reference to `FreeOrionVersionString()'
CMakeFiles/freeorion.dir/chmain.cpp.o: In function `mainSetupAndRun()':
chmain.cpp:(.text+0x31dd): undefined reference to `FreeOrionVersionString()'
CMakeFiles/freeorion.dir/__/__/UI/IntroScreen.cpp.o: In function `IntroScreen::IntroScreen()':
IntroScreen.cpp:(.text+0x1d46): undefined reference to `FreeOrionVersionString()'
collect2: error: ld returned 1 exit status
client/human/CMakeFiles/freeorion.dir/build.make:1727: recipe for target 'freeorion' failed
make[2]: *** [freeorion] Error 1
CMakeFiles/Makefile2:413: recipe for target 'client/human/CMakeFiles/freeorion.dir/all' failed
make[1]: *** [client/human/CMakeFiles/freeorion.dir/all] Error 2
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2
adesst - for you this problem somehow must have "disappeared between posts". Do you by chance have an explanation how you did that?
Because I had no such luck. I made a session recording with util-linux script (naively assuming this would only store the text - but the terminal formatting symbols were included :oops: ). You can display it with cat command.
Some more terminal output to give some details:

Code: Select all

$ ls util/V*
util/VarText.cpp  util/VarText.h  util/Version.cpp  util/Version.cpp.in  util/Version.h
$ ls CMakeFiles/freeorioncommon.dir/util/V*
CMakeFiles/freeorioncommon.dir/util/VarText.cpp.o
The missing symbol seems to come from the generated Version.cpp - which is not compiled however.
Some info about my freeorion-git workspace (from before the build attempt):

Code: Select all

$ git rev-parse HEAD
2e965455bd6ce14eb896865fd84925a3a20cfcf4
$ git log -n 1
commit 2e965455bd6ce14eb896865fd84925a3a20cfcf4
Author: Dilvish-fo <dilvish.fo@gmail.com>
Date:   Wed May 6 07:28:26 2015 -0700

    fixed an old include typo
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
$ git remote show -n origin
* remote origin
  Fetch URL: https://github.com/freeorion/freeorion.git
Jessie currently has boost 1.55 and cmake 3.0.2 (full cmake log included in attachment).
Attachments
fo-build.log
Terminal session recorded with util-linux script command. Not really for text editors - cat will work fine however
(34.72 KiB) Downloaded 73 times

User avatar
Dilvish
AI Lead, Programmer
Posts: 4685
Joined: Sat Sep 22, 2012 6:25 pm

Re: Linking failed libfreeorioncommon.so

#14 Post by Dilvish » Thu May 07, 2015 12:08 am

I can't answer (at least for now) the main question of why this is happening, but try this:

go to your build directory and verify that it has a "util" directory that (only) contains "Version.cpp"; if this is not the case then make the directory and copy the file in. Then (again, from the build directory) run

Code: Select all

make util/Version.o
that should cause the necessary file to be generated in the correct location (CmakeFiles/freeorioncommon.dir/ like you had checked for)
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
adesst
Space Floater
Posts: 18
Joined: Tue May 05, 2015 10:38 am

Re: Linking failed libfreeorioncommon.so

#15 Post by adesst » Thu May 07, 2015 1:11 am

Single Player wrote:Hi everybody

I also try to build current freeorion git on a recent debian jessie amd64 installation -- which still fails with a linking error adesst also listed in his third post here.

Code: Select all

Linking CXX executable ../../freeorion
CMakeFiles/freeorion.dir/chmain.cpp.o: In function `mainConfigOptionsSetup(std::vector<std::string, std::allocator<std::string> > const&)':
chmain.cpp:(.text+0xe02): undefined reference to `FreeOrionVersionString()'
chmain.cpp:(.text+0x10ff): undefined reference to `FreeOrionVersionString()'
CMakeFiles/freeorion.dir/chmain.cpp.o: In function `mainSetupAndRun()':
chmain.cpp:(.text+0x31dd): undefined reference to `FreeOrionVersionString()'
CMakeFiles/freeorion.dir/__/__/UI/IntroScreen.cpp.o: In function `IntroScreen::IntroScreen()':
IntroScreen.cpp:(.text+0x1d46): undefined reference to `FreeOrionVersionString()'
collect2: error: ld returned 1 exit status
client/human/CMakeFiles/freeorion.dir/build.make:1727: recipe for target 'freeorion' failed
make[2]: *** [freeorion] Error 1
CMakeFiles/Makefile2:413: recipe for target 'client/human/CMakeFiles/freeorion.dir/all' failed
make[1]: *** [client/human/CMakeFiles/freeorion.dir/all] Error 2
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2
adesst - for you this problem somehow must have "disappeared between posts". Do you by chance have an explanation how you did that?[/code]
Though we have the same error of chmain.cpp.o but we have different error log. Yes i did a littler changes in
boost/Serialization/deque.cpp.

Code: Select all

@43   inline void load(

-    const boost::archive::library_version_type library_version(
-        ar.get_library_version()
-    );
+
    // retrieve number of elements
    item_version_type item_version(0);
    collection_size_type count;
    ar >> BOOST_SERIALIZATION_NVP(count);
-    if(boost::archive::library_version_type(3) < library_version){
+   if(boost::archive::library_version_type(3) < ar.get_library_version()){
        ar >> BOOST_SERIALIZATION_NVP(item_version);
    }
Then Recompile boost and re-make freeorion.
Sorry did not include the changes i made in my previous post.
Last edited by Dilvish on Thu May 07, 2015 2:27 am, edited 1 time in total.
Reason: to fix quotation structure

Post Reply