You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Eclipse C++编译成功但未生成二进制文件问题求助

解决Eclipse Cross GCC项目编译产物不在Binaries目录的问题

嗨,我来帮你搞定这个问题~你遇到的情况其实是Eclipse中Cross GCC工具链的默认输出路径和你预期的Binaries目录不一致导致的,完全不是编译出错,咱们一步步调整就行:

原因分析

在Mac上使用Cross GCC工具链时,Eclipse的默认构建输出目录是项目根目录下的Debug文件夹,而不是通用的Binaries目录——这是不同工具链(比如Cross GCC和Mac原生GCC)的配置差异,所以编译产物会出现在Debug里,而Binaries目录空空如也。

解决办法

方法一:直接修改构建输出目录到Binaries

这是最直接的方式,让编译产物直接生成到Binaries里:

  • 右键你的unit_test项目,选择Properties(属性)
  • 依次展开C/C++ Build > Settings > Build Artifact
  • 找到Output directory选项,把默认的${ProjDirPath}/Debug修改为${ProjDirPath}/Binaries/Debug(或者你想要的Binaries下的子目录)
  • 点击Apply and Close,重新编译项目,就能在Binaries目录下看到生成的unit_test可执行文件了

方法二:添加编译后复制步骤(保留原输出目录)

如果你想保留Debug目录的产物,同时让Binaries里也同步一份,可以添加Post-build脚本:

  • 同样进入项目属性的C/C++ Build > Settings > Build Steps > Post-build steps
  • Command输入框里粘贴以下命令:
    mkdir -p ${ProjDirPath}/Binaries && cp ${ProjDirPath}/Debug/unit_test ${ProjDirPath}/Binaries/
    
  • 这个命令会先创建Binaries目录(如果不存在),再把Debug里的unit_test复制过去,每次编译后自动完成同步

额外说明

你提到Debug里的unit_test能在终端正常运行,说明你的Cross GCC工具链配置是没问题的,只是路径不符合预期而已。如果之后需要切换回Mac原生GCC工具链,默认输出路径就会回到Binaries目录啦。

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

火山引擎 最新活动