VCPKG安装MSDFGEN时因路径含分号报错的解决方法
解决MSYS2/UCRT64 + VCPKG构建MSDFGEN时CMake编译器检测失败的问题
问题根源
Windows路径格式(带冒号C:\)在MSYS2环境下被错误解析,导致CMake无法识别正确路径,进而找不到编译器检测相关目录。
解决方案
1. 重启干净的UCRT64终端
关闭当前所有UCRT64窗口,直接从MSYS2安装目录打开ucrt64.exe(不要通过其他终端或手动修改PATH启动)。默认的UCRT64终端会自动配置好MSYS2风格的环境变量,避免Windows路径格式冲突。
2. 清理并重置环境变量(若手动修改过PATH)
如果之前手动添加过Windows格式的PATH,在UCRT64终端中执行以下命令重置环境:
unset PATH source /etc/profile
3. 安装MSYS2原生CMake
确保使用UCRT64环境下的CMake,而非Windows系统或Visual Studio自带版本:
pacman -Syu mingw-w64-ucrt-x86_64-cmake
4. 指定正确的VCPKG Triplet安装MSDFGEN
在UCRT64终端中,明确指定适配UCRT64的triplet进行安装:
vcpkg install msdfgen --triplet ucrt-x64-windows
5. 可选:强制VCPKG使用UCRT64工具链
若上述步骤仍失败,安装时手动指定UCRT64的CMake工具链文件:
VCPKG_CHAINLOAD_TOOLCHAIN_FILE=/c/msys64/ucrt64/share/cmake/Modules/Platform/UCRT64.cmake vcpkg install msdfgen --triplet ucrt-x64-windows
注意事项
- 所有路径尽量使用MSYS2风格(例如
/c/msys64/ucrt64而非C:\msys64\ucrt64),避免Windows路径分隔符(分号;)被MSYS2错误解析。 - 不要同时混用MSYS2终端和Windows命令行的环境变量,保持UCRT64终端环境的独立性。
内容的提问来源于stack exchange,提问作者quantumfoam
相关产品推荐
相关产品推荐

