如何在CLion中同时使用vcpkg安装库与手动编译库?
解决CLion同时识别vcpkg库与手动编译Boost的问题
核心思路
保留CLion中vcpkg工具链的配置,通过CMake变量强制指定手动编译Boost的路径与版本,让CMake优先查找手动安装的Boost,同时vcpkg管理的其他库仍通过工具链正常识别。
具体实现步骤
保留vcpkg工具链配置
继续在Settings - Build, Execution, Deployment - CMake - CMake options中保留-DCMAKE_TOOLCHAIN_FILE=/path/to/my/vcpkg/scripts/buildsystems/vcpkg.cmake,确保RapidJSON等vcpkg管理的库能被正常查找。在CMakeLists.txt中强制指定手动Boost参数
在调用find_package(Boost)之前添加以下代码,明确手动编译Boost的根目录与目标版本:# 设置手动编译的Boost安装根目录 set(BOOST_ROOT "/path/to/your/boost_1_85_0_install_dir") # 禁用CMake自动使用Boost自带的配置文件,避免与vcpkg的Boost冲突 set(Boost_NO_BOOST_CMAKE ON) # 查找指定版本的Boost,按需添加所需组件 find_package(Boost 1.85.0 REQUIRED COMPONENTS filesystem thread ...)正常查找vcpkg管理的库
对于vcpkg安装的库,直接使用标准find_package即可,工具链会自动从vcpkg仓库中匹配:find_package(RapidJSON REQUIRED)
之前尝试失效的原因
- 先配置Boost再设置工具链:vcpkg工具链文件会覆盖CMAKE_PREFIX_PATH等路径变量,导致手动Boost的配置被冲掉。
- 仅添加BOOST_ROOT到CMAKE_PREFIX_PATH:vcpkg工具链设置的路径优先级更高,CMake仍会优先找到vcpkg中的旧版本Boost。
内容的提问来源于stack exchange,提问作者Monhde Sau Hung
相关产品推荐
相关产品推荐

