我正在使用Windows系统。我想使用CMake来使用Boost库。 我在C:\ boost_1_55_0上安装了boost 这是我的CMakeLists.txt文件
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.55.0 COMPONENTS thread)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
add_executable (linking_with_boost main.cc sqr.cc)
target_link_libraries(linking_with_boost ${Boost_LIBRARIES})
else()
message(STATUS "Fail asdasd!")
endif()
我得到了 - 不能找到Boost 输出:
$ cmake ../
-- Could NOT find Boost
-- Fail asdasd!
-- Configuring done
-- Generating done
-- Build files have been written to: D:/ubuntu_share/programming/C++/practice/cm
ake/linking_with_boost/build_win
答案 0 :(得分:12)
在Windows 7 x64上,我将Boost 1.58安装到C:\ SDKs \ boost_1_58_0。为了让cMake找到所有适当的文件,我不得不添加以下三个系统变量:
BOOST_INCLUDEDIR C:\SDKs\boost_1_58_0\ BOOST_LIBRARYDIR C:\SDKs\boost_1_58_0\lib64-msvc-12.0 BOOST_ROOT C:\SDKs\boost_1_58_0\boost
答案 1 :(得分:11)
除了BOOST_ROOT之外,我还必须设置BOOST_LIBRARYDIR变量才能成功。在我的例子中,这是c:\ Program Files \ boost_1_56_0 \ lib64-msvc-12.0
答案 2 :(得分:9)
在运行BOOST_ROOT
之前,您需要将环境变量c:\boost_1_55_0
设置为cmake
。另请查看cmake --help-module FindBoost
以获取更多帮助。
答案 3 :(得分:3)
我在这个问题上花了很多时间,最后通过使用FindBoost手册中列出的一些变量解决了这个问题https://cmake.org/cmake/help/v3.0/module/FindBoost.html
以下变量帮助了我:
set (Boost_DETAILED_FAILURE_MSG ON)
set (Boost_THREADAPI win32)
set (BOOST_ROOT "/boost_1_40_0")
set (Boost_LIBRARY_DIR /boost_1_40_0/lib")
set (Boost_COMPILER "-vc")
set (Boost_USE_STATIC_RUNTIME ON)
set (BOOST_DEBUG ON) #<---------- Real life saver