visual-studio-2010 - find_package() 在 Windows Cmake 上没有检测到 boost

标签 visual-studio-2010 boost cmake

我正在使用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

最佳答案

在 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

关于visual-studio-2010 - find_package() 在 Windows Cmake 上没有检测到 boost ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20969280/

相关文章:

c++ - 使用 boost 遍历 mmaped gzip 文件

c++ - boost::range::join 用于多个范围

c++ - 带有 boost 的 XML 序列化( '.serialize' 的左边必须有类/结构/union )

编译C文件,运行它并使用CMAKE写入头文件

visual-studio-2010 - Visual Studio : Can't View Files in a Directory in Project

visual-studio-2010 - 无法附加到应用程序 'iisexpress.exe'

c++ - Bii 代码似乎损坏了我的 cmake

visual-studio - cmake + qt + Visual Studio : moc objects on build

c# - log4net 没有输出

c++ - 我可以在 VS2010 中获取 VS2012 标准库吗