升级到Snow Leopard后,我无法在计算机上运行Eclipse CDT项目。虽然构建过程完成且没有任何错误,但Eclipse无法识别它创建的二进制文件。当尝试在运行配置.. 对话框中指向二进制文件时,它无法在项目中找到任何二进制文件。虽然从终端执行文件工作正常。
根据Eclipse论坛上的a post,这可能是Mach-O解析器无法识别64位二进制文件的问题。有谁知道问题的解决方案或解决方法是什么,以便我可以在Snow Leopard上运行/调试我的C ++项目。
已更新
Shane建议的解决方案虽然允许识别创建的二进制文件,但确实引入了另一个问题。由于Snow Leopard中的系统库都是64位,因此不再可能将使用-arch i386
创建的代码与这些库链接起来,因此还不是一个可行的解决方案。
答案 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解析器(已弃用)]