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

CMake搭配Green Hills编译器生成的exe不兼容Win10无法运行如何解决

问题根因

该问题和CMake配置无直接关联,核心是编译器选型完全错误:

  • 你使用的C:/TCC/Tools/greenhills_ifx/comp_201815_5fp_WIN64是Green Hills为英飞凌(IFX)嵌入式芯片定制的TriCore架构交叉编译工具链。路径下的cxtri.exe/cctri.exe是运行在Windows主机上的编译前端程序,编译输出的目标指令集是TriCore架构(对应英飞凌AURIX系列车规MCU),并非你Win10设备使用的x86/amd64桌面架构。
  • 这类交叉编译器不会链接Windows桌面系统原生运行库,生成的文件虽然是exe后缀格式,但文件头不符合Windows桌面可执行程序规范。你看到的属性页标注「最高仅支持Windows8」是系统识别非标准PE头给出的错误提示,不是兼容模式配置问题,这类文件本质就不是给Win10桌面环境运行的,启动报错是必然结果。
  • CMake配置、make构建流程成功,仅代表代码语法符合编译器要求、链接步骤无语法错误,不代表生成的程序能在当前主机系统运行。
解决方案

根据你的实际需求二选一处理:

场景1:目标是在当前Win10 64位系统上运行HelloWorld程序

直接替换掉当前的嵌入式交叉编译器,使用面向Windows桌面平台的原生C++编译器即可,不需要额外增加特殊CMake配置:

  • 可选原生编译器包括:
    • MinGW-w64(和你当前选的Unix Makefiles生成器完全适配)
    • MSVC(Visual Studio自带编译器,对应选择Visual Studio系列CMake生成器即可)
    • 官方Clang for Windows
  • 修改CMakeLists.txt,删除硬编码的嵌入式编译器路径配置:
    # 删除以下两行错误的编译器路径配置
    # set(CMAKE_CXX_COMPILER "C:/TCC/Tools/greenhills_ifx/comp_201815_5fp_WIN64/cxtri.exe")
    # set(CMAKE_C_COMPILER "C:/TCC/Tools/greenhills_ifx/comp_201815_5fp_WIN64/cctri.exe")
    
  • 清空之前的build构建目录,重新执行CMake配置,让工具自动检测系统内已安装的桌面原生编译器,重新构建出的exe即可直接在Win10上正常运行。

场景2:必须使用这套Green Hills工具链编译

这套工具链的编译目标是英飞凌嵌入式硬件,编出的程序本就不该在Win10桌面环境运行,需要烧录到对应型号的英飞凌开发板/硬件板卡上才能启动。如果需要在PC端调试该工具链编译的程序,需要安装Green Hills官方配套的Multi IDE及对应架构的目标模拟器,不能直接在Win10原生环境启动生成的exe文件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:57:16