也许我错过了一些显而易见的事情,因为我在互联网上搜索了很长一段时间但是找不到解决以下问题的方法:
我正在使用Eclipse Kepler SP2(Build id:20140224-0627),CDT和MinGW作为编译器后端。用gdb调试C代码一直很好,直到今天(至少我注意到了今天的问题)。 现在,当我想在调试器中启动程序时,我收到以下错误消息:
Error in final launch sequence
Failed to execute MI command:
-file-exec-and-symbols C:/[...]/Debug/test.exe
Error message from debugger back end:
"C:\[...]\Debug\test.exe": not in executable format: File format not recognized
该程序运行良好,所以我想我可能搞砸了一些设置。但是当我尝试调试旧程序时,一切正常,直到我重新编译旧程序 - >同样的问题。如果我要求C向导使用MinGW创建一个新的“Hello World”ANSI C应用程序,则会出现同样的问题。
使用的编译命令是
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\test.o" "..\\src\\test.c"
gcc -o test.exe "src\\test.o"
我之间并没有更新我的MinGW,而是更新了Eclipse。
您是否有任何关于在何处寻找问题的指示?
编辑:我刚检查了二进制类型:我的旧项目都是[x86 / le],新编译的是[amd64 / le]。这应该是一个跟踪......将根据进度更新发布。
Edit2 : argh 我几天前安装了草莓perl,安装程序已将原始BUILD SYSTEM中的环境变量MINGW_HOME
更改为{{1这搞砸了我的构建。将其重置为我的c:\strawberry\c
解决了这个问题。
我也会将此作为答案发布。标题和标签已更新,以便更直接地指出此问题。
答案 0 :(得分:5)
我几天前安装了草莓perl,安装程序已将原始BUILD SYSTEM中的环境变量MINGW_HOME
更改为c:\strawberry\c
,这搞砸了我的构建。将其重置为我的c:\MinGW
解决了这个问题。
顺便说一句:发生了这种情况,因为草莓在我的自定义c:\strawberry\c
前面的PATH中添加了c:\MinGW
,而eclipse将这些添加到了BUILD SYSTEM变量中。
答案 1 :(得分:0)
它应该是解析器问题,Project / Properties / Build / Settings下的二进制解析器是什么?
答案 2 :(得分:0)
检查项目->属性-> C / C ++构建-> MINGW_HOME的环境和路径 确保您具有正确的gdb版本(通过在调试配置下检查->环境)。