如何移除Meson构建中链接器命令的/MACHINE:x64选项?
解决Meson交叉编译Windows x86时链接器自动添加/MACHINE:x64的问题
核心原因是Meson未正确识别x86交叉编译目标,导致默认生成x64链接器参数,以下是具体解决步骤:
确保交叉配置文件被正确加载
初始化构建目录时必须显式指定交叉配置文件,否则Meson会使用本地默认x64工具链:meson setup build --cross-file your_cross_config.ini修正交叉配置文件,让Meson自动生成正确参数
无需手动添加/MACHINE:x86,Meson会根据host_machine配置自动匹配对应参数。修改你的交叉配置文件:[host_machine] system = 'windows' cpu_family = 'x86' cpu = 'x86' endian = 'little' [binaries] # 若本地有多个工具链版本,需填写x86版MSVC工具的完整路径 c = 'cl' cpp = 'cl' link = 'link' ar = 'lib' [built-in options] # 移除手动添加的/MACHINE参数,按需指定C运行时版本 b_vscrt = 'md'调整后Meson会根据x86目标自动设置
/MACHINE:x86,替换默认的x64参数。清理旧构建缓存
若之前用x64配置初始化过构建目录,需删除整个build目录后重新执行初始化命令,避免缓存残留干扰新配置。验证结果
重新生成build.ninja后,检查cpp_LINKER规则,链接器命令中的/MACHINE参数应已变为x86。
内容的提问来源于stack exchange,提问作者ChristofferPass
相关产品推荐
相关产品推荐

