使用Vcpkg+CLion时找不到Xlnt配置文件及版本配置报错求助
解决CLion中Vcpkg管理Xlnt/duckx依赖的问题
第一步:修复vcpkg.json的版本基线错误
你遇到的第二个报错是因为vcpkg的manifest模式要求:使用version>=版本约束时,必须指定builtin-baseline字段,或者直接移除版本约束。两种解决方式:
方式1:移除版本约束(简单快速)
修改vcpkg.json为:
{ "name": "untitled", "dependencies": [ "duckx", "xlnt" ] }
方式2:添加builtin-baseline(保留版本约束)
- 打开命令行,进入vcpkg安装目录,运行
vcpkg fetch baseline,复制输出的commit hash。 - 修改
vcpkg.json,添加builtin-baseline字段:
{ "name": "untitled", "builtin-baseline": "替换为你获取到的commit hash", "dependencies": [ { "name": "duckx", "version>=": "1.2.2#1" }, { "name": "xlnt", "version>=": "1.5.0#4" } ] }
第二步:修正CMakeLists.txt配置
不要手动添加include("C:/vcpkg/scripts/buildsystems/vcpkg.cmake"),这会破坏CMake的系统检测流程,导致编译器未设置的错误。你的现有CMakeLists.txt基本正确,保持如下即可:
cmake_minimum_required(VERSION 3.25.2) SET(CMAKE_TOOLCHAIN_FILE "C:/vcpkg/scripts/buildsystems/vcpkg.cmake") project(untitled) set(CMAKE_CXX_STANDARD 17) add_executable(untitled main.cpp) find_package(Xlnt CONFIG REQUIRED) find_package(duckx CONFIG REQUIRED) target_link_libraries(untitled PRIVATE xlnt::xlnt) target_link_libraries(untitled PRIVATE duckx::duckx)
第三步:配置CLion的CMake环境
- 打开CLion的
File -> Settings -> Build, Execution, Deployment -> CMake - 在
CMake options中,确认是否添加了-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake(如果你的CMakeLists.txt已经设置,这里可以不用重复,但添加后更稳妥) - 确保
Toolchain选择的是对应vcpkg包的工具链(比如MSVC对应x64-windows,MinGW对应x64-mingw-static等)
第四步:清理并重新构建
- 删除项目根目录下的
cmake-build-debug(或其他构建目录) - 在CLion中点击
File -> Reload CMake Project - 运行构建命令,等待vcpkg自动安装依赖
额外验证
如果还是找不到Xlnt配置文件,手动检查vcpkg的安装目录:
- 进入
C:/vcpkg/installed/x64-windows/share/xlnt(根据你的目标三元组调整路径,比如x86-windows) - 确认目录下存在
XlntConfig.cmake或xlnt-config.cmake文件,如果没有,手动运行vcpkg install xlnt:x64-windows(替换为你的目标三元组)安装依赖
内容的提问来源于stack exchange,提问作者KosmoFromTheRedStars
相关产品推荐
相关产品推荐

