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

clang++编译生成文件运行报cannot execute binary file错误求助

问题根因

你的编译命令中加入了-c参数,该参数会强制clang++只完成编译、汇编步骤,跳过最终的链接环节,生成的是目标文件而非可执行程序,所以运行时会触发格式错误。

修复方案
  • 首先移除命令中的-c参数,同时补充LLVM对应的链接参数,仅--cxxflags只包含编译阶段的配置,链接阶段需要额外指定链接参数、依赖库:
    修改后的编译命令示例如下:
clang++ -I ../llvm-project/llvm/include -I ../llvm-project/clang/include \
  -I ../llvm-project/build/tools/clang/include -I ../llvm-project/build/include \
  -O3 $(llvm-config-7 --cxxflags --ldflags --system-libs --libs core) \
  projectToTestHeadersBuilding.cpp -o projectToTestHeadersBuilding

注意:如果你的代码用到了LLVM、Clang的其他组件,需要在--libs后的core后面追加对应的组件名,例如用到Clang AST能力就需要补充clangAST clangBasic等组件。

验证方法

编译完成后执行file projectToTestHeadersBuilding,如果输出内容中包含executable标识,说明生成的是可执行文件,直接执行./projectToTestHeadersBuilding即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:36:00