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

Linux交叉编译Windows程序时,如何正确设置CMAKE_INSTALL_PREFIX?

在Linux交叉构建Windows软件时正确设置CMake安装前缀的方法

当在Linux环境下用CMake交叉编译Windows目标时,直接传递Windows风格路径会因为CMake的路径解析规则出现问题,以下是两种可靠的解决方式:

方法一:命令行传递正确格式的路径

CMake在处理Windows目标时,支持两种路径写法:

  1. 使用双反斜杠转义的Windows路径,并用引号包裹避免空格解析问题:
cmake -DCMAKE_INSTALL_PREFIX="C:\\Program Files\\my-project" <源码目录路径>
  1. 直接使用正斜杠替代反斜杠,CMake会自动转换为Windows系统识别的路径格式:
cmake -DCMAKE_INSTALL_PREFIX="C:/Program Files/my-project" <源码目录路径>

方法二:在CMakeLists.txt中针对Windows目标配置

如果希望避免命令行传递路径的麻烦,可以在项目的CMakeLists.txt中添加条件判断,直接为Windows目标设置安装前缀:

if(WIN32)
  # 强制设置Windows平台的安装前缀,覆盖默认值
  set(CMAKE_INSTALL_PREFIX "C:/Program Files/my-project" CACHE PATH "Install prefix for Windows target" FORCE)
endif()

这种方式会让CMake在交叉编译Windows目标时自动应用该设置,无需在命令行额外指定,同时能保证路径被正确识别为Windows绝对路径。

需要注意的是,由于你使用CPack的ZIP生成器打包,无需在Linux机器执行实际安装操作,只要CMAKE_INSTALL_PREFIX被正确设置,CPack会按照该前缀组织ZIP内的文件结构,且编译进二进制的路径也会是符合Windows要求的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:05:00