vcpkg BOOST库填坑

vcpkg BOOST库填坑

vcpkg对于boost库暂时不支持find_package

解决方法

  • find_library to search for the library files (.lib) and use taget_link_libraries to link them, and
  • find_path to search for header files and include them with target_include_directories.
  • 也就是说需要用find_library和find_path命令替换find_package
  • 如果要继续使用find_package,那么可以使用CMake自定义的内部变量Boost_INCLUDE_DIRS,Boost_LIBRARIES,请参考下面的例子

例子

使用cmake的例子:

  • 注意,如果boost的某个包比如asio没有链接库,那么find_package不需要COMPONENTS参数
  • 另外target_include_directories,target_link_libraries和include_directories,link_libraries是不同的
cmake_minimum_required(VERSION 3.10)
set(CMAKE_TOOLCHAIN_FILE /home/xxx/snap/vcpkg/scripts/buildsystems/vcpkg.cmake)

project(a)

AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src SRC_LIST)
find_package(Boost REQUIRED COMPONENTS thread)
add_executable(a.out ${SRC_LIST})
target_include_directories(a.out PUBLIC ${Boost_INCLUDE_DIRS})
target_link_libraries(a.out ${Boost_LIBRARIES})
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
发布了80 篇原创文章 · 获赞 68 · 访问量 7547

猜你喜欢

转载自blog.csdn.net/weixin_44048823/article/details/103104383