我正在尝试在Eclipse Indigo中调试C ++程序。该项目使用autotools / configure(和相应的插件)作为构建系统。
成功构建后,我在项目浏览器中右键单击二进制文件并选择“Debug As”。然后我使用文件浏览器选择二进制文件。单击“Debug”然后打开一个对话框,其中只显示“程序不是可识别的可执行文件”。
有什么想法吗?
答案 0 :(得分:35)
我找到了答案:在eclipse中配置的二进制解析器是错误的。在Project下添加正确的二进制解析器 - >属性 - > C / C ++ Build - >设置解决了他的问题。
答案 1 :(得分:3)
如果你在项目中使用libtool
,看起来二进制文件实际上可能是一个包装脚本,用于在执行真正的二进制文件(存储在其中之前)设置LD_LIBRARY_PATH
之类的东西.libs
目录)。这可能是导致Eclipse失败的原因,但我不确定你应该如何解决这个问题。
在互联网上似乎有一些关于Eclipse CDT和libtool
的文档可能有您需要的信息:http://www.freerdp.com/wiki/doku.php?id=eclipse#debug_configuration
答案 2 :(得分:0)
从OSX snow leopard开始,gcc似乎默认构建了64位可执行文件。那些不会被Eclipse认可的回报。要解决这个错误,你必须明确地将你的架构设置为i386。
输入项目属性并为每个C ++链接器,C ++编译器和C编译器添加命令行选项“-arch i386”。在完全构建之后,您应该清楚再次调试。在链接器选项中,请确保不要将其设置为-Xlinker选项。