【发布时间】:2017-10-18 21:04:12
【问题描述】:
boost的根目录($ENV{BOOST_ROOT})是
C:\Boost\boost_1_64_0
所有编译的库(.dll、.lib)都在
C:\Boost\boost_1_64_0\lib64-msvc-14.1
它们同时具有 boost_xxx 和 libboost_xxx。
我的 cmake 文件是
set(BOOST_ROOT "$ENV{BOOST_ROOT}")
set(BOOST_LIBRARYDIR "$ENV{BOOST_ROOT}/lib64-msvc-14.1")
message("${BOOST_ROOT}")
message("${BOOST_LIBRARYDIR}")
message("${Boost_INCLUDE_DIR}")
if(MSVC)
add_definitions(-DBOOST_ALL_NO_LIB)
add_definitions(-DBOOST_ALL_DYN_LINK)
endif()
find_package(Boost 1.64.0 COMPONENTS system filesystem program_options REQUIRED)
输出是
C:\Boost\boost_1_64_0
C:\Boost\boost_1_64_0/lib64-msvc-14.1
C:/Boost/boost_1_64_0
C:/Program 处的 CMake 错误 文件/CMake/share/cmake-3.8/Modules/FindBoost.cmake:1842(消息):
找不到请求的 Boost 库。Boost 版本:1.64.0
Boost 包含路径:C:/Boost/boost_1_64_0
找不到以下 Boost 库:
boost_system boost_filesystem boost_program_options未找到任何 Boost 库。您可能需要设置 BOOST_LIBRARYDIR 到包含 Boost 库的目录或 BOOST_ROOT 到 Boost的位置。调用堆栈(最近的调用优先):
CMakeLists.txt:78 (find_package)CMakeLists.txt:84 处的 CMake 错误(消息):找不到提升
有人可以帮忙吗?我已经为此花费了几个小时,但无法弄清楚为什么这不起作用。
【问题讨论】:
-
设置 BOOST_DEBUG 正是为了调试这种情况。这样做并显示结果日志。