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)
GitHub 加速计划 / vc / vcpkg
22.52 K
6.21 K
下载
vcpkg - 一个用于管理 C 和 C++ 库的工具,支持在 Windows、Linux 和 macOS 上安装和集成各种库。
最近提交(Master分支:2 个月前 )
4f746bc6 9 天前
6e90218d 9 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐