CMake没有找到提升

时间:2012-11-04 22:42:22

标签: c++ boost cross-platform cmake

Windows 7. 64位。 CMake 2.8.10。

步骤:

  • 下载提升:http://sourceforge.net/projects/boost/files/boost/1.51.0/
  • 把它放到 C:\ work \ lib \ boost_1_51_0-MT
  • 打开“开始 - >所有程序 - > Microsoft Visual Studio 2010-> Visual Studio工具 - > Visual Studio命令提示符(2010)”
  • 命令:
cd C:\work\lib\boost_1_51_0-MT
bootstrap.bat
bjam --toolset=msvc-10.0 --variant=release --build-type=complete -j 4 --with-regex --with-test --with-filesystem --with-date_time --with-random --with-system --with-thread --with-program_options --with-chrono --with-math stage link=static threading=multi runtime-link=static
  • 命令:
set BOOST_ROOT=C:\work\lib\boost_1_51_0-MT
cmake M:\project

  Unable to find the requested Boost libraries.

  Boost version: 1.51.0

  Boost include path: C:/work/lib/boost_1_51_0-MT

  The following Boost libraries could not be found:

          boost_system
          boost_thread
          boost_random
          boost_chrono

  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.

M:\ project \ CMakeLists.txt包含:(我需要静态链接提升)

...
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ON)
set(USE_STATIC_BOOST ON)
add_definitions(-DBOOST_THREAD_USE_LIB)
add_definitions(-DBOOST_ALL_NO_LIB)

find_package(Boost 1.48.0 COMPONENTS system thread random chrono REQUIRED)
...

这个CMakeLists.txt已经过时了,可用于其他升级安装(由我完成而不是我过去,但接收失败了。)

解决

set(Boost_USE_STATIC_LIBS ON)

...现在CMake找到了升级库!虽然我的“set(USE_STATIC_BOOST ON)”必须具有相同的效果,但它不会...

1 个答案:

答案 0 :(得分:2)

<强>解决

set(Boost_USE_STATIC_LIBS ON)

...现在CMake找到了升级库!虽然我的CMakeLists.txt有set(USE_STATIC_BOOST ON),但必须具有相同的效果,但它不会...

要使用set(Boost_USE_STATIC_LIBS OFF),您需要添加:

if( WIN32 )
  # Needed for boost to turn off autolinking for dynamic linking
  add_definitions( -DBOOST_ALL_NO_LIB )
endif()

详情请见: Linking boost library with Boost_USE_STATIC_LIB OFF on Windows