View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0014997CMakeModulespublic2014-06-28 03:182015-01-05 08:38
ReporterIngvord 
Assigned To 
PriorityhighSeveritymajorReproducibilityalways
StatusclosedResolutionno change required 
Platformcygwin 2.850 x64OSWindows 7 x64OS Version
Product VersionCMake 2.8.11.2 
Target VersionFixed in Version 
Summary0014997: FindBoost can not find boost libraries installed via cygwin setup
DescriptionWhen 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:

$> cmake .. -DBoost_DEBUG=On
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:476 ] _boost_TEST_VERSION
S = 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_MULTITHRE
ADED = TRUE
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:480 ] Boost_USE_STATIC_LI
BS =
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:482 ] Boost_USE_STATIC_RU
NTIME =
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:484 ] Boost_ADDITIONAL_VE
RSIONS =
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:486 ] Boost_NO_SYSTEM_PAT
HS =
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:538 ] Declared as CMake o
r 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_VERSION
S = 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_COMP
ILER = -gcc48
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:749 ] _boost_MULTITHREADE
D = -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_TA
G = -d
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:842 ] _boost_LIBRARY_SEAR
CH_DIRS = /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: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_VERSION
S = 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_MULTITHRE
ADED = OFF
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:480 ] Boost_USE_STATIC_LI
BS = OFF
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:482 ] Boost_USE_STATIC_RU
NTIME = OFF
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:484 ] Boost_ADDITIONAL_VE
RSIONS =
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:486 ] Boost_NO_SYSTEM_PAT
HS =
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:538 ] Declared as CMake o
r 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_VERSION
S = 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_COMP
ILER = -gcc48
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:749 ] _boost_MULTITHREADE
D =
-- [ /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_TA
G = -d
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:842 ] _boost_LIBRARY_SEAR
CH_DIRS = /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 PROGR
AM_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 PROGR
AM_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 SYSTE
M_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 SYSTE
M_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 direc
tory 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.
Steps To Reproduceinstall cygwin's compilers, boost libraries and cmake
try to cmake any project depends on boost
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0036285)
Ingvord (reporter)
2014-06-28 03:36

Just to clarify:

boost library files are in /lib directory of cygwin, i.e. c:\cygwin64\lib

running cmake with BOOST_LIBRARYDIR:
BOOST_LIBRARYDIR=/lib cmake .. -DBoost_DEBUG=on

adds /lib to the _boost_LIBRARY_SEARCH_DIRS but does not solve the problem
(0036286)
Ingvord (reporter)
2014-06-28 04:22

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
(0036287)
Ingvord (reporter)
2014-06-28 08:46

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.
(0036291)
Brad King (manager)
2014-06-30 15:17

Re 0014997:0036287: Okay. AFAICT there is no bug in CMake here.
(0037575)
Robert Maynard (manager)
2015-01-05 08:38

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2014-06-28 03:18 Ingvord New Issue
2014-06-28 03:36 Ingvord Note Added: 0036285
2014-06-28 04:22 Ingvord Note Added: 0036286
2014-06-28 08:46 Ingvord Note Added: 0036287
2014-06-30 15:17 Brad King Note Added: 0036291
2014-06-30 15:17 Brad King Status new => resolved
2014-06-30 15:17 Brad King Resolution open => no change required
2015-01-05 08:38 Robert Maynard Note Added: 0037575
2015-01-05 08:38 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team