C++ CMake包含推进野兽(仅页眉)
我想把它包括在我的项目中。这是一个只有标题的库。我已将Beast存储库克隆到与我的项目相同的目录中 我在CMake中使用以下内容来包括标题:C++ CMake包含推进野兽(仅页眉),c++,boost,cmake,C++,Boost,Cmake,我想把它包括在我的项目中。这是一个只有标题的库。我已将Beast存储库克隆到与我的项目相同的目录中 我在CMake中使用以下内容来包括标题: set(BEAST_INCLUDE_DIR ../beast/include) include_directories(${BEAST_INCLUDE_DIR}) set(SOURCE_FILES ${BEAST_INCLUDE_DIR}/boost/beast.hpp ...) add_library(my_lib ${SOURCE_FILES})
set(BEAST_INCLUDE_DIR ../beast/include)
include_directories(${BEAST_INCLUDE_DIR})
set(SOURCE_FILES ${BEAST_INCLUDE_DIR}/boost/beast.hpp ...)
add_library(my_lib ${SOURCE_FILES})
我包括使用以下内容(与其他Boost包括一起使用):
我建议创建Beast,然后将其作为依赖项添加到库中
为Beast创建接口库:
add_library(boost_beast INTERFACE)
target_include_directories(boost_beast
SYSTEM
PUBLIC
"${CMAKE_CURRENT_LIST_DIR}/../beast/include")
请注意,在对的调用中,我已指定:
:告诉编译器目录的含义是系统包含目录SYSTEM
:告诉编译器应该使目录对目标本身(PUBLIC
)和目标用户(您的库)都可见boost_beast
add_library(boost_beast INTERFACE)
target_include_directories(boost_beast
SYSTEM
PUBLIC
"${CMAKE_CURRENT_LIST_DIR}/../beast/include")
然后,您可以将boost\u beast
作为依赖项添加到库中:
add_library(my_lib ${SOURCE_FILES})
target_link_libraries(my_lib boost_beast)
此时,
my_lib
将临时提供Boost Beast包含目录。使用绝对路径包含目录:set(Beast_包含目录
${CMAKE_当前源目录}/./Beast/include)代码>你的提升和你的CMake版本是什么?@Tsyvarev我试过绝对路径。同样的问题。@usr1234567 Boost 1.63.0。CMake 3.8.2
add_library(my_lib ${SOURCE_FILES})
target_link_libraries(my_lib boost_beast)