Before trying to build FreeOrion from the repository, I built gcc 5.4; seemed to work correctly. Then I built Boost 1.64; that seemed to work correctly too. (I built it with gcc 4.9.2, not 5.4, if that matters.)
So then I tried building FreeOrion, and got weird errors. It seems like it’s not finding certain Boost libraries. Not sure which ones, though; the error messages are rather cryptic and lacking in details.
First, I tell it where to find my custom builds:
$ export BOOST_ROOT=/misc/boost_1_64_0
$ export CC=/misc/gcc54/usr/local/bin/gcc
$ export CXX=/misc/gcc54/usr/local/bin/g++
Create a separate build directory:
$ pwd
/misc/fo/repo/freeorion
$ cd ..
$ mkdir fo-build
$ cd fo-build
Record the output:
$ script -f ../cmake-run
Run cmake:
$ cmake ../freeorion
Full output is below. Summarizing:
It sees the correct compiler. Omitting some lines:
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /misc/gcc54/usr/local/bin/gcc -- works
-- Check for working CXX compiler: /misc/gcc54/usr/local/bin/g++ -- works
It had some trouble with pthread but seemed to find it eventually:
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread - found
Then I get this, repeated 12 times:
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
Followed by other messages about Boost, but this seems to be where it went off the rails.
Anyone know what’s going on here? I looked at various files and was not enlightened.
Full output:
-- Setting build type to 'Release' as none was specified.
-- Build type CMAKE_BUILD_TYPE set to Release
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /misc/gcc54/usr/local/bin/gcc
-- Check for working C compiler: /misc/gcc54/usr/local/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /misc/gcc54/usr/local/bin/g++
-- Check for working CXX compiler: /misc/gcc54/usr/local/bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.9", minimum required is "2.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found suitable version "2.7.9", minimum required is "2.7")
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:153 (find_package)
CMake Error at /usr/share/cmake-3.6/Modules/FindBoost.cmake:1772 (message):
Unable to find the requested Boost libraries.
Boost version: 1.64.0
Boost include path: /misc/boost_1_64_0/include
Could not find the following Boost libraries:
boost_python
Some (but not all) of the required Boost libraries were found. You may
need to install these additional Boost libraries. Alternatively, set
BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT
to the location of Boost.
Call Stack (most recent call first):
CMakeLists.txt:153 (find_package)
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8")
-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.6.3")
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so
-- Found SDL: /usr/lib/x86_64-linux-gnu/libSDL2.so (found version "2.0.5")
-- Found OpenAL: /usr/lib/x86_64-linux-gnu/libopenal.so
-- Found Ogg: /usr/lib/x86_64-linux-gnu/libogg.so
-- Found Vorbis: /usr/lib/x86_64-linux-gnu/libvorbis.so
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
GG/CMakeLists.txt:95 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
GG/CMakeLists.txt:95 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
GG/CMakeLists.txt:95 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
GG/CMakeLists.txt:95 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
GG/CMakeLists.txt:95 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
GG/CMakeLists.txt:95 (find_package)
CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106400
Call Stack (most recent call first):
/usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.6/Modules/FindBoost.cmake:1411 (_Boost_MISSING_DEPENDENCIES)
GG/CMakeLists.txt:95 (find_package)
-- Boost version: 1.64.0
-- Found the following Boost libraries:
-- date_time
-- filesystem
-- regex
-- signals
-- system
-- thread
-- log
-- Found GLEW: /usr/include
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.2.50")
-- Could NOT find cppcheck (missing: CPPCHECK_EXECUTABLE)
-- Could NOT find pycodestyle (missing: PYCODESTYLE_EXECUTABLE)
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.8")
-- Configuring incomplete, errors occurred!
See also "/misc/fo/repo/fo-build/CMakeFiles/CMakeOutput.log".
See also "/misc/fo/repo/fo-build/CMakeFiles/CMakeError.log".
CMake doesn’t seem to find some Boost libraries
Moderator: Oberlus
Re: CMake doesn’t seem to find some Boost libraries
Here are some suggestions, and questions for next time.
Suggestions
What distro are you using?
Next time could you post "/misc/fo/repo/fo-build/CMakeFiles/CMakeError.log" as well?
Suggestions
- 1. Recompile the boost libraries with gcc 5.4. One of the changes in gcc 5.0 was a major ABI change to support C++11. FreeOrion compiled with gcc 5.4 may link with boost libraries compiled with 4.9.2, but it will crash.
2. Find, install, and compile if necessary boost python
3. Install cppcheck and pycodestyleTualha wrote:Could not find the following Boost libraries:
boost_pythonTualha wrote:-- Could NOT find cppcheck (missing: CPPCHECK_EXECUTABLE)
-- Could NOT find pycodestyle (missing: PYCODESTYLE_EXECUTABLE)
What distro are you using?
Next time could you post "/misc/fo/repo/fo-build/CMakeFiles/CMakeError.log" as well?
Re: CMake doesn’t seem to find some Boost libraries
Aha! Not sure if that’s behind this problem, but it sounds necessary, anyway.LGM-Doyle wrote:1. Recompile the boost libraries with gcc 5.4. One of the changes in gcc 5.0 was a major ABI change to support C++11. FreeOrion compiled with gcc 5.4 may link with boost libraries compiled with 4.9.2, but it will crash.
Isn’t that part of Boost? It seems to be there. Perhaps CMake can’t see it because of issue #1.2. Find, install, and compile if necessary boost python
Will do.3. Install cppcheck and pycodestyle
Debian 8, “jessie”. Debian is rather notorious for outdated versions. The next release just hit stable and I plan to install it eventually, but that can be disruptive, so I was hoping I could get this working by building things myself.What distro are you using?
Will do. Thanks for all the input.Next time could you post "/misc/fo/repo/fo-build/CMakeFiles/CMakeError.log" as well?
-
- Programmer
- Posts: 389
- Joined: Sun Feb 14, 2016 12:08 am
Re: CMake doesn’t seem to find some Boost libraries
Sounds like FindBoost.cmake is not updated for 1.64Imported targets not available for Boost version 106400
You might try also setting Boost_ADDITIONAL_VERSION to 1.64.0, personally I just update the script (source), but might not be suitable resolution for everyone.
(Some previous related discussion on PR #1385)
Any content posted should be considered licensed GNU GPL 2.0 and/or CC-BY-SA 3.0 as appropriate.
Re: CMake doesn’t seem to find some Boost libraries
Hmm, good thoughts. I have to rebuild Boost anyway, so maybe I’ll just use the version that CMake knows about. Thanksdbenage-cx wrote:Sounds like FindBoost.cmake is not updated for 1.64Imported targets not available for Boost version 106400
You might try also setting Boost_ADDITIONAL_VERSION to 1.64.0, personally I just update the script (source), but might not be suitable resolution for everyone.
(Some previous related discussion on PR #1385)
Re: CMake doesn’t seem to find some Boost libraries
Also, I seem to recall that last time I built boost for FO, which was a fair while back, that I had to go out of my way to get it to build the particular types of libraries that FO needed (I think I needed to specify -mt for multi threaded libraries). That's not seeming like a super likely candidate here, but perhaps just enough of a possibility to be worth mentioning.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0
Re: CMake doesn’t seem to find some Boost libraries
Yes, worth mentioning. It could be a factor. Thank you.Dilvish wrote:Also, I seem to recall that last time I built boost for FO, which was a fair while back, that I had to go out of my way to get it to build the particular types of libraries that FO needed (I think I needed to specify -mt for multi threaded libraries). That's not seeming like a super likely candidate here, but perhaps just enough of a possibility to be worth mentioning.