3

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

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

更新

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

4

5 回答 5

3

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

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

干杯,

于 2009-09-21T03:22:54.987 回答
2

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

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

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

于 2009-09-30T01:20:33.770 回答
1

格玛特,

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

干杯,谢恩

于 2009-09-21T10:34:58.037 回答
1

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

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

于 2010-03-21T04:38:12.257 回答
0

正如我之前所知,二进制解析器位于 [Project Properties -> C/C++ Build -> Settings],如上所述。但我认为它已经改变了。

我可以通过这种方式找到二进制解析器:[eclipse -> environment -> C/C++ -> New C/C++ Project Wizard -> makefile project -> binary parser -> mach-O parser (Deprecated)]

于 2016-11-01T07:33:49.593 回答