CMake的不再发现Boost库 [英] CMake no longer finds Boost libraries

查看:255
本文介绍了CMake的不再发现Boost库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我工作的一个大型C ++项目依赖的推动作用。该项目是建立在各种使用CMake的平台。在我的Windows机器,我使用的CMake 2.8.9,Visual Studio 2010和升压1.50.0(来源建)。

I am working on a large C++ project that relies on Boost. The project is built on a variety of platforms using CMake. On my Windows machine, I am using CMake 2.8.9, Visual Studio 2010 and Boost 1.50.0 (built from sources).

我一直用CMake的,多年来一起提升而没有问题,用升压版本一样古老1.33。 现在,突然的CMake不再发现Boost库。已在我的机器上唯一改变的是,我最近安装了Visual Studio 2012,但我不认为这有什么的问题做(在另一只手,据我记得,这是的只有的已经改变的东西)。

I have been using CMake and Boost together for years without problem, with Boost versions as old as 1.33. Now, suddenly CMake no longer finds the Boost libraries. The only thing that has changed on my machine is that I recently installed Visual Studio 2012, but I don't think this has anything to do with the problem (on the other hand and as far as I remember, this is the only thing that has changed).

下面是我使用调用C进行命令行:

Here is the command line I am using to invoke CMake:

cmake ..\src -DBOOST_ROOT=..\..\boost -DQT_QMAKE_EXECUTABLE=..\..\qt-4.8.0\bin\qmake.exe

这用于工作得很好,但现在输出:

This used to work flawlessly, but it now outputs:

-- Building for: Visual Studio 10
-- Check for working C compiler using: Visual Studio 10
-- Check for working C compiler using: Visual Studio 10 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 10
-- Check for working CXX compiler using: Visual Studio 10 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:1191 (message):
  Unable to find the requested Boost libraries.

  Boost version: 1.50.0

  Boost include path: C:/franz/dev/boost

  The following Boost libraries could not be found:

          boost_date_time
          boost_filesystem
          boost_regex
          boost_system
          boost_thread

  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.
Call Stack (most recent call first):
  CMakeLists.txt:114 (find_package)


-- Found OpenGL: opengl32
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - not found.
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt4: C:/franz/dev/qt-4.8.0/bin/qmake.exe (found version "4.8.0")
-- Configuring incomplete, errors occurred!

显然,它的没有的找到我升压装置,因为它报告的正确路径和版本号。

Apparently, it did find my Boost installation as it reports the correct path and version number.

下面是 C的含量:\\弗朗茨\\ dev的\\提升\\阶段\\ lib中

08/18/2012  05:20 PM           360,294 libboost_chrono-vc100-mt-1_50.lib
08/18/2012  05:19 PM         1,529,418 libboost_chrono-vc100-mt-gd-1_50.lib
08/18/2012  05:20 PM           600,900 libboost_date_time-vc100-mt-1_50.lib
08/18/2012  05:19 PM         2,064,420 libboost_date_time-vc100-mt-gd-1_50.lib
08/18/2012  05:20 PM             5,478 libboost_exception-vc100-mt-1_50.lib
08/18/2012  05:19 PM            39,634 libboost_exception-vc100-mt-gd-1_50.lib
08/18/2012  05:20 PM           857,020 libboost_filesystem-vc100-mt-1_50.lib
08/18/2012  05:20 PM         4,289,814 libboost_filesystem-vc100-mt-gd-1_50.lib
08/18/2012  05:21 PM         5,811,696 libboost_graph-vc100-mt-1_50.lib
08/18/2012  05:14 PM        14,388,384 libboost_graph-vc100-mt-gd-1_50.lib
08/18/2012  05:21 PM           406,742 libboost_iostreams-vc100-mt-1_50.lib
08/18/2012  05:14 PM         1,260,032 libboost_iostreams-vc100-mt-gd-1_50.lib
08/18/2012  05:21 PM         6,886,724 libboost_locale-vc100-mt-1_50.lib
08/18/2012  05:14 PM        22,056,376 libboost_locale-vc100-mt-gd-1_50.lib
08/18/2012  05:22 PM         1,395,280 libboost_math_c99-vc100-mt-1_50.lib
08/18/2012  05:15 PM         4,095,066 libboost_math_c99-vc100-mt-gd-1_50.lib
08/18/2012  05:23 PM         1,410,172 libboost_math_c99f-vc100-mt-1_50.lib
08/18/2012  05:15 PM         4,113,830 libboost_math_c99f-vc100-mt-gd-1_50.lib
08/18/2012  05:23 PM         1,376,096 libboost_math_c99l-vc100-mt-1_50.lib
08/18/2012  05:15 PM         4,056,498 libboost_math_c99l-vc100-mt-gd-1_50.lib
08/18/2012  05:22 PM         5,832,008 libboost_math_tr1-vc100-mt-1_50.lib
08/18/2012  05:15 PM        14,472,628 libboost_math_tr1-vc100-mt-gd-1_50.lib
08/18/2012  05:22 PM         6,115,696 libboost_math_tr1f-vc100-mt-1_50.lib
08/18/2012  05:15 PM        15,004,588 libboost_math_tr1f-vc100-mt-gd-1_50.lib
08/18/2012  05:22 PM         5,779,786 libboost_math_tr1l-vc100-mt-1_50.lib
08/18/2012  05:15 PM        14,362,836 libboost_math_tr1l-vc100-mt-gd-1_50.lib
08/18/2012  05:25 PM           215,242 libboost_prg_exec_monitor-vc100-mt-1_50.lib
08/18/2012  05:18 PM         1,226,324 libboost_prg_exec_monitor-vc100-mt-gd-1_50.lib
08/18/2012  05:23 PM         6,425,284 libboost_program_options-vc100-mt-1_50.lib
08/18/2012  05:16 PM        20,124,142 libboost_program_options-vc100-mt-gd-1_50.lib
08/18/2012  05:24 PM         5,722,808 libboost_python-vc100-mt-1_50.lib
08/18/2012  05:17 PM        21,947,816 libboost_python-vc100-mt-gd-1_50.lib
08/18/2012  05:24 PM            83,144 libboost_random-vc100-mt-1_50.lib
08/18/2012  05:17 PM           406,482 libboost_random-vc100-mt-gd-1_50.lib
08/18/2012  05:21 PM        10,473,946 libboost_regex-vc100-mt-1_50.lib
08/18/2012  05:13 PM        34,561,778 libboost_regex-vc100-mt-gd-1_50.lib
08/18/2012  05:25 PM        11,650,480 libboost_serialization-vc100-mt-1_50.lib
08/18/2012  05:17 PM        30,379,304 libboost_serialization-vc100-mt-gd-1_50.lib
08/18/2012  05:25 PM           987,732 libboost_signals-vc100-mt-1_50.lib
08/18/2012  05:18 PM         3,898,264 libboost_signals-vc100-mt-gd-1_50.lib
08/18/2012  05:20 PM            83,032 libboost_system-vc100-mt-1_50.lib
08/18/2012  05:19 PM           415,800 libboost_system-vc100-mt-gd-1_50.lib
08/18/2012  05:25 PM        10,058,306 libboost_test_exec_monitor-vc100-mt-1_50.lib
08/18/2012  05:18 PM        23,818,324 libboost_test_exec_monitor-vc100-mt-gd-1_50.lib
08/18/2012  05:26 PM           847,252 libboost_thread-vc100-mt-1_50.lib
08/18/2012  05:18 PM         2,633,358 libboost_thread-vc100-mt-gd-1_50.lib
08/18/2012  05:26 PM           178,456 libboost_timer-vc100-mt-1_50.lib
08/18/2012  05:18 PM           861,732 libboost_timer-vc100-mt-gd-1_50.lib
08/18/2012  05:26 PM        10,943,274 libboost_unit_test_framework-vc100-mt-1_50.lib
08/18/2012  05:18 PM        26,280,564 libboost_unit_test_framework-vc100-mt-gd-1_50.lib
08/18/2012  05:26 PM        46,920,182 libboost_wave-vc100-mt-1_50.lib
08/18/2012  05:19 PM        98,744,066 libboost_wave-vc100-mt-gd-1_50.lib
08/18/2012  05:25 PM         9,000,488 libboost_wserialization-vc100-mt-1_50.lib
08/18/2012  05:18 PM        20,631,532 libboost_wserialization-vc100-mt-gd-1_50.lib

我们可以看到,加速建成与使用使用多线程运行时的Visual Studio 2010(VC100)静态库。

As we can see, Boost was built as static libraries using Visual Studio 2010 (vc100) using the multithreaded runtime.

下面是CMake的输出,当我指定 -DBoost_DEBUG = 1

Here is the output of CMake when I specify -DBoost_DEBUG=1:

-- Building for: Visual Studio 10
-- Check for working C compiler using: Visual Studio 10
-- Check for working C compiler using: Visual Studio 10 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 10
-- Check for working CXX compiler using: Visual Studio 10 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:566 ] _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
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:568 ] Boost_USE_MULTITHREADED = TRUE
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:570 ] Boost_USE_STATIC_LIBS =
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:572 ] Boost_USE_STATIC_RUNTIME =
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:574 ] Boost_ADDITIONAL_VERSIONS =
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:576 ] Boost_NO_SYSTEM_PATHS =
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:644 ] Declared as CMake or Environmental Variables:
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:646 ]   BOOST_ROOT = ../../boost
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:648 ]   BOOST_INCLUDEDIR =
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:650 ]   BOOST_LIBRARYDIR =
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:652 ] _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
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:705 ] Include debugging info:
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:707 ]   _boost_INCLUDE_SEARCH_DIRS = ../../boost/include;../../boost;C:/boost/include;C:/boost;C:\Program Files (x86)/boost/include;C:\Program Files (x86)/boost;/sw/local/include
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:709 ]   _boost_PATH_SUFFIXES = boost-1_56_0;boost_1_56_0;boost-1_56;boost_1_56;boost-1_55_0;boost_1_55_0;boost-1_55;boost_1_55;boost-1_54_0;boost_1_54_0;boost-1_54;boost_1_54;boost-1_53_0;boost_1_53_0;boost-1_53;boost_1_53;boost-1_52_0;boost_1_52_0;boost-1_52;boost_1_52;boost-1_51_0;boost_1_51_0;boost-1_51;boost_1_51;boost-1_50_0;boost_1_50_0;boost-1_50;boost_1_50;boost-1_49_0;boost_1_49_0;boost-1_49;boost_1_49;boost-1_48_0;boost_1_48_0;boost-1_48;boost_1_48;boost-1_47_0;boost_1_47_0;boost-1_47;boost_1_47;boost-1_46_1;boost_1_46_1;boost-1_46_0;boost_1_46_0;boost-1_46;boost_1_46
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:734 ] location of version.hpp: C:/franz/dev/boost/boost/version.hpp
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:753 ] version.hpp reveals boost 1.50.0
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:785 ] guessed _boost_COMPILER = -vc100
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:795 ] _boost_MULTITHREADED = -mt
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:838 ] _boost_RELEASE_ABI_TAG = -
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:840 ] _boost_DEBUG_ABI_TAG = -gd
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:883 ] _boost_LIBRARY_SEARCH_DIRS = ../../boost/lib;../../boost/stage/lib;C:/franz/dev/boost/lib;C:/franz/dev/boost/../lib;C:/franz/dev/boost/stage/lib;C:/boost/lib;C:/boost;C:\Program Files (x86)/boost/boost_1_50_0/lib;C:\Program Files (x86)/boost/boost_1_50/lib;C:\Program Files (x86)/boost/lib;C:\Program Files (x86)/boost;/sw/local/lib
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:961 ] Searching for DATE_TIME_LIBRARY_RELEASE: boost_date_time-vc100-mt-1_50;boost_date_time-vc100-mt;boost_date_time-mt-1_50;boost_date_time-mt;boost_date_time
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:993 ] Searching for DATE_TIME_LIBRARY_DEBUG: boost_date_time-vc100-mt-gd-1_50;boost_date_time-vc100-mt-gd;boost_date_time-mt-gd-1_50;boost_date_time-mt-gd;boost_date_time-mt;boost_date_time
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:961 ] Searching for FILESYSTEM_LIBRARY_RELEASE: boost_filesystem-vc100-mt-1_50;boost_filesystem-vc100-mt;boost_filesystem-mt-1_50;boost_filesystem-mt;boost_filesystem
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:993 ] Searching for FILESYSTEM_LIBRARY_DEBUG: boost_filesystem-vc100-mt-gd-1_50;boost_filesystem-vc100-mt-gd;boost_filesystem-mt-gd-1_50;boost_filesystem-mt-gd;boost_filesystem-mt;boost_filesystem
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:961 ] Searching for REGEX_LIBRARY_RELEASE: boost_regex-vc100-mt-1_50;boost_regex-vc100-mt;boost_regex-mt-1_50;boost_regex-mt;boost_regex
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:993 ] Searching for REGEX_LIBRARY_DEBUG: boost_regex-vc100-mt-gd-1_50;boost_regex-vc100-mt-gd;boost_regex-mt-gd-1_50;boost_regex-mt-gd;boost_regex-mt;boost_regex
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:961 ] Searching for SYSTEM_LIBRARY_RELEASE: boost_system-vc100-mt-1_50;boost_system-vc100-mt;boost_system-mt-1_50;boost_system-mt;boost_system
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:993 ] Searching for SYSTEM_LIBRARY_DEBUG: boost_system-vc100-mt-gd-1_50;boost_system-vc100-mt-gd;boost_system-mt-gd-1_50;boost_system-mt-gd;boost_system-mt;boost_system
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:961 ] Searching for THREAD_LIBRARY_RELEASE: boost_thread-vc100-mt-1_50;boost_thread-vc100-mt;boost_thread-mt-1_50;boost_thread-mt;boost_thread
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:993 ] Searching for THREAD_LIBRARY_DEBUG: boost_thread-vc100-mt-gd-1_50;boost_thread-vc100-mt-gd;boost_thread-mt-gd-1_50;boost_thread-mt-gd;boost_thread-mt;boost_thread
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:1107 ] Boost_FOUND = FALSE
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:1191 (message):
  Unable to find the requested Boost libraries.

  Boost version: 1.50.0

  Boost include path: C:/franz/dev/boost

  The following Boost libraries could not be found:

          boost_date_time
          boost_filesystem
          boost_regex
          boost_system
          boost_thread

  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.
Call Stack (most recent call first):
  CMakeLists.txt:114 (find_package)


-- Found OpenGL: opengl32
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - not found.
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt4: C:/franz/dev/qt-4.8.0/bin/qmake.exe (found version "4.8.0")
-- Configuring incomplete, errors occurred!

下面是在与升压涉及顶层的CMakeLists.txt文件中的部分:<一href=\"https://github.com/jupiter-jazz/appleseed/blob/95b045bf06c731cd331d68f6c2515f1acefc1b42/src/CMakeLists.txt#L100\">https://github.com/jupiter-jazz/appleseed/blob/95b045bf06c731cd331d68f6c2515f1acefc1b42/src/CMakeLists.txt#L100

Here is the section in the top level CMakeLists.txt file that deals with Boost: https://github.com/jupiter-jazz/appleseed/blob/95b045bf06c731cd331d68f6c2515f1acefc1b42/src/CMakeLists.txt#L100

我也试图指定 BOOST_LIBRARYDIR 而不是 BOOST_ROOT ,都无济于事。

I have also tried to specify BOOST_LIBRARYDIR instead of BOOST_ROOT, to no avail.

同样,这已经完美了多年在Windows,Linux和Mac OS X的许多变种我找原因为什么它suddently停止工作工作。

任何帮助AP preciated。

Any help appreciated.

弗朗茨

推荐答案

在您的调试输出,它看起来像 Boost_USE_STATIC_LIBS 没有设置,但没有你要找的静态加速库。

In your debug output, it looks like Boost_USE_STATIC_LIBS is unset, but yet you're looking for the static boost libs.

再次尝试但 -DBoost_USE_STATIC_LIBS =运行CMake的ON 添加到命令。

Try running CMake again but with -DBoost_USE_STATIC_LIBS=ON added to the command.

其实,你的<一个href=\"https://github.com/jupiter-jazz/appleseed/blob/95b045bf06c731cd331d68f6c2515f1acefc1b42/src/CMakeLists.txt#L106\">CMakeLists.txt在另一个变量 USE_STATIC_BOOST 包装此。该设置为 ON 应该有同样的效果。

In fact, your CMakeLists.txt wraps this in another variable USE_STATIC_BOOST. Setting that to ON should have the same effect.

这篇关于CMake的不再发现Boost库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆