看看
FindBoost.cmake
, line 1478
,
脚本将查看
CMAKE_CXX_COMPILER_ARCHITECTURE_ID
整齐
构建正确的体系结构标记。但是,在我的编译器(mingw-w64 8.1)上
64位),此字符串为空。因此,架构标记被省略。
我必须手动设置这个变量的值,方法是
在我之前
find_package
线:
if(WIN32 AND "x${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "x")
message(WARNING "WIN32 compiler does not specify CMAKE_CXX_COMPILER_ARCHITECTURE_ID -- filling in manually")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID "x64")
else()
set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID "x86")
endif()
message(STATUS "Compiler architecture: ${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}")
endif()
# now we should be able to find boost correctly.
find_package(Boost REQUIRED COMPONENTS system context coroutine thread random REQUIRED)
这使得find_包工作正常。