Snow Leopard上的Eclipse CDT无法找到二进制文件

时间:2009-09-19 22:51:32

标签: eclipse macos gcc osx-snow-leopard eclipse-cdt

升级到Snow Leopard后,我无法在计算机上运行Eclipse CDT项目。虽然构建过程完成且没有任何错误,但Eclipse无法识别它创建的二进制文件。当尝试在运行配置.. 对话框中指向二进制文件时,它无法在项目中找到任何二进制文件。虽然从终端执行文件工作正常。

根据Eclipse论坛上的a post,这可能是Mach-O解析器无法识别64位二进制文​​件的问题。有谁知道问题的解决方案或解决方法是什么,以便我可以在Snow Leopard上运行/调试我的C ++项目。

已更新

Shane建议的解决方案虽然允许识别创建的二进制文件,但确实引入了另一个问题。由于Snow Leopard中的系统库都是64位,因此不再可能将使用-arch i386创建的代码与这些库链接起来,因此还不是一个可行的解决方案。

5 个答案:

答案 0 :(得分:3)

根据您引用的帖子,您需要将-arch i386添加到项目的编译器和链接器设置中。然后,当您重建项目时,CDT将获取可执行文件。

项目属性 - > C / C ++ Build - >设置。然后在编译器和链接器其他部分中添加其他标志中的标志。

干杯,

答案 1 :(得分:2)

由于Eclipse的二进制解析器尚未更新以识别新的64位Mach-O二进制格式(https://bugs.eclipse.org/bugs/show_bug.cgi?id=270790),因此现在看来唯一的解决方法是以32位模式编译代码。

结果是无法将C / C ++项目链接到任何系统库,因为它们中的大多数已经编译为64位。

我现在的解决方案是临时切换到XCode。

答案 2 :(得分:1)

gmatt,

64个二进制文件是不同的,因为新架构也有新的通用寄存器。架构中还存在更多差异,这些差异会影响您在二进制文件中看到的操作码。

干杯, 沙恩

答案 3 :(得分:1)

最终发布了一个新的Mach 64位二进制解析器。

我刚刚在Eclipse中进行了更新,并在项目属性下选择了新的二进制解析器。我终于可以在Eclipse中运行我的c ++二进制文件,但由于某些原因我仍然在努力调试。

答案 4 :(得分:0)

如前所述,二进制解析器位于 [项目属性 - > C / C ++ Build - >设置]如上所述。但我觉得它已经改变了。

我可以通过这种方式找到二进制解析器: [eclipse - >环境 - > C / C ++ - >新的C / C ++项目向导 - > makefile项目 - >二元解析器 - > mach-O解析器(已弃用)]