This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: cmake cannot find boost libraries
- From: Ingvord <tla-ingvord at ya dot ru>
- To: "cygwin at cygwin dot com" <cygwin at cygwin dot com>
- Date: Sat, 28 Jun 2014 17:03:28 +0400
- Subject: Re: cmake cannot find boost libraries
- Authentication-results: sourceware.org; auth=none
- Envelope-from: tla-ingvord at yandex dot ru
- References: <691251403941138 at web4j dot yandex dot ru> <762921403943777 at web4j dot yandex dot ru>
Finally got it!
The problem indeed was with this Boost_USE_MULTITHREADED param. In one of the CMakeLists files it was set to OFF, i.e. set(Boost_USE_MULTITHREADED OFF)
Passing ON value through command line gave no result. But after changing the mentioned CMakeLists file cmake has found the libraries.
28.06.2014, 12:23, "Ingvord" <tla-ingvord@ya.ru>:
> I am wrong that renaming boost library files solves the issue. it solves it partially - cmake finds the libraries, but then make fails:
>
> $> make
> ...
> make[2]: *** No rule to make target '/usr/lib/libboost_program_options.a', needed by 'src/cygpnicore-2.dll'. Stop.
> CMakeFiles/Makefile2:1162: recipe for target 'src/CMakeFiles/pnicore.dir/all' failed
> make[1]: *** [src/CMakeFiles/pnicore.dir/all] Error 2
> Makefile:126: recipe for target 'all' failed
> make: *** [all] Error 2
>
> '/usr/lib/libboost_program_options.a' file exists:
> $ ls -al /usr/lib/libboost_program_options.a
> lrwxrwxrwx 1 Ingvord None 38 Jun 28 08:04 /usr/lib/libboost_program_options.a ->
> /lib/libboost_program_options-mt.dll.a
>
> 28.06.2014, 11:39, "Ingvord" <tla-ingvord@ya.ru>:
>> Dear All,
>>
>> First of all I would like to thank all cygwin developers for the fact that such a great thing as cygwin exists.
>>
>> Currently I am running cygwin 2.850 x64 on windows 7 x64.
>>
>> Compilers, boost libraries and cmake everything has been installed via setup.
>>
>> When trying to cmake project which uses boost libraries on cygwin cmake reports "Could not find Boost". Headers are being found with out problems.
>>
>> Here is an output from cmake:
>>
>> $> BOOST_LIBRARYDIR=/lib cmake .. -DBoost_DEBUG=On
>> ...
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:476 ] _boost_TEST_VERSIONS = 1.56.0;1.56;1.55.0;1.55;1.54.0;1.54;1.53.0;1.53;1.52.0;1.52;1.51.0;1.51;1.50
>> .0;1.50;1.49.0;1.49;1.48.0;1.48;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.0;1.45;1.44.
>> 0;1.44;1.43.0;1.43;1.42.0;1.42;1.41.0;1.41;1.40.0;1.40;1.39.0;1.39;1.38.0;1.38;1
>> .37.0;1.37;1.36.1;1.36.0;1.36;1.35.1;1.35.0;1.35;1.34.1;1.34.0;1.34;1.33.1;1.33.
>> 0;1.33
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:478 ] Boost_USE_MULTITHREADED = TRUE
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:480 ] Boost_USE_STATIC_LIBS =
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:482 ] Boost_USE_STATIC_RUNTIME =
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:484 ] Boost_ADDITIONAL_VERSIONS =
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:486 ] Boost_NO_SYSTEM_PATHS =
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:538 ] Declared as CMake or Environmental Variables:
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:540 ] BOOST_ROOT =
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:542 ] BOOST_INCLUDEDIR=
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:544 ] BOOST_LIBRARYDIR=
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:546 ] _boost_TEST_VERSIONS = 1.56.0;1.56;1.55.0;1.55;1.54.0;1.54;1.53.0;1.53;1.52.0;1.52;1.51.0;1.51;1.50
>> .0;1.50;1.49.0;1.49;1.48.0;1.48;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.0;1.45;1.44.
>> 0;1.44;1.43.0;1.43;1.42.0;1.42;1.41.0;1.41;1.40.0;1.40;1.39.0;1.39;1.38.0;1.38;1
>> .37.0;1.37;1.36.1;1.36.0;1.36;1.35.1;1.35.0;1.35;1.34.1;1.34.0;1.34;1.33.1;1.33.
>> 0;1.33
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:639 ] location of version.hpp: /usr/include/boost/version.hpp
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:663 ] version.hpp reveals boost 1.53.0
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:739 ] guessed _boost_COMPILER = -gcc48
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:749 ] _boost_MULTITHREADED = -mt
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:792 ] _boost_RELEASE_ABI_TAG = -
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:794 ] _boost_DEBUG_ABI_TAG = -d
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:842 ] _boost_LIBRARY_SEARCH_DIRS = /lib;/usr/include/lib;/usr/include/../lib;/usr/include/stage/lib;PATHS;C:/boost/lib;C:/boost;/sw/local/lib
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:1017 ] Boost_FOUND = 1
>> -- Boost version: 1.53.0
>> found GNU compiler ...
>> setup for release build ...
>> 2.8.11.2
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:476 ] _boost_TEST_VERSIONS = 1.56.0;1.56;1.55.0;1.55;1.54.0;1.54;1.53.0;1.53;1.52.0;1.52;1.51.0;1.51;1.50
>> .0;1.50;1.49.0;1.49;1.48.0;1.48;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.0;1.45;1.44.
>> 0;1.44;1.43.0;1.43;1.42.0;1.42;1.41.0;1.41
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:478 ] Boost_USE_MULTITHREADED = OFF
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:480 ] Boost_USE_STATIC_LIBS = OFF
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:482 ] Boost_USE_STATIC_RUNTIME = OFF
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:484 ] Boost_ADDITIONAL_VERSIONS =
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:486 ] Boost_NO_SYSTEM_PATHS =
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:538 ] Declared as CMake or Environmental Variables:
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:540 ] BOOST_ROOT =
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:542 ] BOOST_INCLUDEDIR=
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:544 ] BOOST_LIBRARYDIR=
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:546 ] _boost_TEST_VERSIONS = 1.56.0;1.56;1.55.0;1.55;1.54.0;1.54;1.53.0;1.53;1.52.0;1.52;1.51.0;1.51;1.50
>> .0;1.50;1.49.0;1.49;1.48.0;1.48;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.0;1.45;1.44.
>> 0;1.44;1.43.0;1.43;1.42.0;1.42;1.41.0;1.41
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:639 ] location of version.hpp: /usr/include/boost/version.hpp
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:663 ] version.hpp reveals boost 1.53.0
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:739 ] guessed _boost_COMPILER = -gcc48
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:749 ] _boost_MULTITHREADED =
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:792 ] _boost_RELEASE_ABI_TAG = -
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:794 ] _boost_DEBUG_ABI_TAG = -d
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:842 ] _boost_LIBRARY_SEARCH_DIRS = /lib;/usr/include/lib;/usr/include/../lib;/usr/include/stage/lib;PATHS;C:/b
>> oost/lib;C:/boost;/sw/local/lib
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:930 ] Searching for PROGRAM_OPTIONS_LIBRARY_RELEASE: boost_program_options-gcc48-1_53;boost_program_optio
>> ns-gcc48;boost_program_options-1_53;boost_program_options;boost_program_options
>> cygwin warning:
>> MS-DOS style path detected: C:/boost/lib64
>> Preferred POSIX equivalent is: /cygdrive/c/boost/lib64
>> CYGWIN environment variable option "nodosfilewarning" turns off this warning.
>> Consult the user's guide for more details about POSIX paths:
>> http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:966 ] Searching for PROGRAM_OPTIONS_LIBRARY_DEBUG: boost_program_options-gcc48-d-1_53;boost_program_optio
>> ns-gcc48-d;boost_program_options-d-1_53;boost_program_options-d;boost_program_op
>> tions;boost_program_options
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:930 ] Searching for SYSTEM_LIBRARY_RELEASE: boost_system-gcc48-1_53;boost_system-gcc48;boost_system-1_53;
>> boost_system;boost_system
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:966 ] Searching for SYSTEM_LIBRARY_DEBUG: boost_system-gcc48-d-1_53;boost_system-gcc48-d;boost_system-d-1
>> _53;boost_system-d;boost_system;boost_system
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:930 ] Searching for REGEX_LIBRARY_RELEASE: boost_regex-gcc48-1_53;boost_regex-gcc48;boost_regex-1_53;boos
>> t_regex;boost_regex
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:966 ] Searching for REGEX_LIBRARY_DEBUG: boost_regex-gcc48-d-1_53;boost_regex-gcc48-d;boost_regex-d-1_53;
>> boost_regex-d;boost_regex;boost_regex
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:1017 ] Boost_FOUND = 1
>> -- Could NOT find Boost
>> Boost version: 1.53.0
>> Boost include path: /usr/include
>> The following Boost libraries could not be found:
>> boost_program_options
>> boost_system
>> boost_regex
>> No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.
>>
>> Here is the list of boost libraries in %CYGWIN_ROOT%\lib:
>> C:\cygwin64\lib>ls -l | grep boost
>> -rwxr-xr-x 1 Ingvord None 1732 May 29 2013 libboost_atomic-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 61458 May 29 2013 libboost_chrono-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 152554 May 29 2013 libboost_date_time-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 131606 May 29 2013 libboost_filesystem-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 593878 May 29 2013 libboost_graph-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 321382 May 29 2013 libboost_iostreams-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 1404706 May 29 2013 libboost_locale-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 129006 May 29 2013 libboost_math_c99-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 138172 May 29 2013 libboost_math_c99f-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 805006 May 29 2013 libboost_math_tr1-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 809648 May 29 2013 libboost_math_tr1f-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 90426 May 29 2013 libboost_prg_exec_monitor-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 885422 May 29 2013 libboost_program_options-mt.a
>> -rwxr-xr-x 1 Ingvord None 13172 May 29 2013 libboost_random-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 1539722 May 29 2013 libboost_regex-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 1362342 May 29 2013 libboost_serialization-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 232596 May 29 2013 libboost_signals-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 10870 May 29 2013 libboost_system-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 246156 May 29 2013 libboost_thread-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 22186 May 29 2013 libboost_timer-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 1485554 May 29 2013 libboost_unit_test_framework-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 3386782 May 29 2013 libboost_wave-mt.dll.a
>> -rwxr-xr-x 1 Ingvord None 942846 May 29 2013 libboost_wserialization-mt.dll.a
>>
>> Notice that when cmake finds headers it properly defines multithreading:
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:478 ] Boost_USE_MULTITHREADED = TRUE
>>
>> later on it does not:
>> -- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:749 ] _boost_MULTITHREADED =
>>
>> If I manually change boost library file names to libboost_<whatever>.a, i.e. remove -mt.dll then this problem is gone. So temporary created a number of symlinks, which is not quite nice, I guess.
>>
>> --
>> Ingvord
>>
>> --
>> Problem reports: http://cygwin.com/problems.html
>> FAQ: http://cygwin.com/faq/
>> Documentation: http://cygwin.com/docs.html
>> Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
>
> --
> Ingvord
>
> --
> Problem reports: http://cygwin.com/problems.html
> FAQ: http://cygwin.com/faq/
> Documentation: http://cygwin.com/docs.html
> Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
--
Ingvord
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple