This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cmake cannot find boost libraries


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]