eclipse + CDT + MinGW 进行C++程序开发

14年前
Windows 7下,eclipse + CDT + MinGW 进行C++程序开发的一个问题(转源:http://hi.baidu.com/moer4ball/blog/item/7821ef45c3cc1f21cefca337.html)
2009年01月12日 星期一 01:06

很久以前我就分别写过在Linux和WinXP下安装并使用Eclipse+CDT+MinGW的文章,当时确实在使用过程中没有遇到问题。但为什么只要我相隔一段时间后再次使用时,总会出现各种问题呢?上次是运行程序时提示“launch failed no binaries”,这回的问题则是:
1、新建project后,problems标签下就会显示“Error launching external scanner info generator (gcc -E -P -v -dD C:/Documents and Settings/Accur/workspace C++/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp) ”;
2、build project 时,console标签下会显示“Error launching builder (make -k clean all)
(Exec error: Launching failed)
”。

我从接触eclipse以来,一直用的都是eclipse SDK 3.3 + CDT 3.1.2 + MingGW 3.1.0这一组合,从一开始的在linux和WinXP下均能正常使用,到这两次问题频出,我并没有修改过任何设置,这都是为什么?为什么?

尝试一:
在网上了解到这可能跟CDT版本有关,于是我来到了http://www.eclipse.org/cdt/downloads.php官网下载页面,发现针对eclipse 3.3 应该使用CDT4.0.x,而我现在所用的是3.1.2版的,难道eclipse对cdt插件的版本这么敏感?于是我更换了CDT的版本,下载了4.0.3版的。可是重启eclipse后,问题依旧,看来这一套行不通~

尝试二
接着继续在网上搜索useful的信息,一篇国外网友的名为“solution for "Error launching external scanner info generator(gcc -E -P -v -dD ...)”的email(从内容格式来看,应该是信件)引起了我的注意。文中两句话非常关键:
1、I removed the org.eclipse.cdt.core.win32_4.0.0.200709241202.jar file from the plugins directory and the problem was gone (at least for projects using a Makefile).

2、With try & error I find out that the org.eclipse.cdt.core.win32_4.0.0.200706261300.jar produce the problem. I don't no why, but after deleted the jar all is fine!

指出了eclipse所在目录下的plugins文件夹里的org.eclipse.cdt.core.win32_4.0.0.xx…xx.jar文件(xx…xx具体内容可能会不一样)可能是问题的根源所在。于是,我将该文件删除掉,然后重启eclipse~ 嘿!Error launching external scanner info generator ……”的警告消失啦!而且程序也能够顺利build和run了,难道问题就算解决了?…… 其实不然,我在接下来的检查中,发现上述两问题虽然解决了,却又出现了新的问题:不能创建C/C++ Project!!晕,这都咋的了?如果这问题不能解决的话,那我不都白忙乎了,还不如直接用MS VC++呢(虽然我不会)~

尝试三
于是乎,继续explore中…… 历尽千辛万苦啊,终于在Eclipse + CDT + MinGW + MSYS编译出错这一帖子中找到了终极方案!网友zhangdong在帖子回答到:
把org.eclipse.cdt.core.win32_4.0.0.200802251018.jar 解压为目录,同时删除该jar就可以了
我照做之后,问题确实彻底得到了解决!可以创建C/C++ project 了,警告以及出错信息消失了,程序也可以正常build和run 了!(至少针对目前来说,这个方法确实解决了遇到的所有问题)至于why? 我也不知道……

---------------------------------------------------------------------
补充:
使用CDT4.0.3以后,eclipse中开发C/C++程序的一些选项设置发生了改变,最明显的就是创建 project 时,没有managed projectstandard project 选项了,取而代之的是excutable﹣Hello World C++ Project、Empty Project 等类型选项。这个变化是不是意味着不需要写makefile文件了?至少我测试了几个简单程序,直接build之后就可以run了,这过程中压根没有接触到makefile。 是真的不需要写?还是我没找到选项?或者是其它方面?这个新版本的CDT插件我才刚开始用,不懂~~ 如果哪位兄弟姐妹有所了解的,请多多指教啊!