You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows编译kMyMoney源码遇vcpkg跨平台路径兼容问题求助

Windows下构建kMyMoney时CMake+vcpkg路径错误问题

问题场景

在Windows系统中从源码构建kMyMoney,遵循官方构建环境指南操作,执行CMake命令时出现文件未找到错误,错误信息如下:

C:\Users\drfri\kMyMoney>cmake -B Build -S . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_TOOLCHAIN_FILE=c:/Users/drfri/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG-MANIFEST-ROOT=c:/Users/drfri/kMyMoney
-- Running vcpkg install
Failed to load manifest from directory C:\cygdrive\c\Users\drfri\kMyMoney
no such file or directory
note: updating vcpkg by rerunning bootstrap-vcpkg may resolve this failure.
-- Running vcpkg install - failed
CMake Error at c:/Users/drfri/vcpkg/scripts/buildsystems/vcpkg.cmake:892 (message):
  vcpkg install failed.  See logs for more information:
  /cygdrive/c/Users/drfri/kMyMoney/Build/vcpkg-manifest-install.log
Call Stack (most recent call first):
  Build/CMakeFiles/3.23.2/CMakeSystem.cmake:6 (include)
  CMakeLists.txt:14 (project)


-- Configuring incomplete, errors occurred!
See also "/cygdrive/c/Users/drfri/kMyMoney/Build/CMakeFiles/CMakeOutput.log".
See also "/cygdrive/c/Users/drfri/kMyMoney/Build/CMakeFiles/CMakeError.log".

注意到错误中出现了Linux风格的/cygdrive/c/路径,现寻求以下问题的解决办法:

  • 是否遗漏了某个CMake参数?
  • 当前使用的vcpkg版本(2023-04-07)是否适配?
  • CMake版本为3.26.3-Windows,vcpkg.json位于c:\Users\drfri\kMyMoney目录下,相关配置文件中无cygdrive相关引用,且日志未提供更多有效信息,该如何解决此问题?

解决方案

1. CMake参数问题修正

  • 移除CMAKE_INSTALL_PREFIX=/usr:该路径是类Unix系统的安装目录,Windows下需改为Windows风格路径(如"C:\Program Files\kMyMoney"),或留空使用默认路径。
  • 修正参数名:VCPKG-MANIFEST-ROOT应为VCPKG_MANIFEST_ROOT(使用下划线而非连字符),这是触发路径解析异常的关键原因之一。

修正后的CMake命令示例:

cmake -B Build -S . -DCMAKE_INSTALL_PREFIX="C:\Program Files\kMyMoney" -DCMAKE_TOOLCHAIN_FILE=c:/Users/drfri/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_MANIFEST_ROOT=c:/Users/drfri/kMyMoney

2. vcpkg版本适配性处理

2023-04-07版本的vcpkg与CMake 3.26.3理论上兼容,但建议更新vcpkg以修复潜在路径解析bug:

  • 进入vcpkg安装目录,执行bootstrap-vcpkg.bat重新编译更新vcpkg。

3. cygdrive路径异常解决

出现/cygdrive/c/路径的核心原因及解决步骤:

  • 路径格式异常源于你可能在Cygwin/MSYS2终端中执行命令,这类环境会自动将Windows路径转换为Cygwin风格,导致vcpkg无法识别。需切换到原生Windows CMD或PowerShell中执行CMake命令。
  • 确保所有路径使用Windows风格(c:/xxx或C:\xxx),不要混用类Unix路径格式。
  • 删除Build目录下的所有缓存文件,清理后重新执行修正后的CMake命令。

内容的提问来源于stack exchange,提问作者DRF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:05:02