在Dev-C++中无法将C源码编译成exe,提示“源文件未编译”的解决办法

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本博客采用 WPCMD 维护;
  • 本文标题:在Dev-C++中无法将C源码编译成exe,提示“源文件未编译”的解决办法
  • 本文链接:http://zengrong.net/post/1150.htm


今天下载了一堆C的书籍,准备深入学习一下。却发现这些书里面都没有讲解如何配置学习环境。无奈又google了一堆资料,选择了Dev-C++这个IDE,敲了Hello World代码,默认保存成C++源码(扩展名cpp),编译运行均正常。可是如果将其保存为C源码(扩展名c),在编译的时候,虽然也没有任何出错提示,但是却无法找到编译出来的exe文件。
下面是解决步骤:

操作系统:Windows 7 旗舰版
Dev-C++版本:5.0.0.0(下载地址:http://sourceforge.net/p/devcpp/home/

先需要说说的是版本问题。Dev-C++从2005年起就停止维护了,最终版为4.9.9.2。我下载的这个5.0.0.0版本,是另有人在原来的基础上重新开始维护而生成的。注意下面两个地址在项目名称上的区别,一个是dev-cpp,一个是devcpp:
Dev-C++ 4.9.9.2 http://sourceforge.net/projects/dev-cpp/files/
Dev-C++ 5.0.0.0 http://sourceforge.net/p/devcpp/home/

网上有些资料说出现这个问题的原因,是因为Dev-C++安装程序无法将路径信息写入Vista系统(网上出现这问题的多为Vista系统)的PATH中,需要添加路径,并配置所有的命令行工具的路径为绝对路径。可我照做后发现,出现了错误提示:

cannot exec `cc1′: No such file or directory

这明显是在编译的时候找不到cc1这个程序导致。仔细检查,发现网上教程中使用的mingw32版本为3.4.2,而我的版本是 3.4.5,在\Dev-Cpp\libexec\gcc\mingw32\3.4.5\文件夹下,没有cc1.exe,只有一个cc1plus.exe。再次搜索,发现cc1plus.exe是用来编译C++源码的。于是试着复制了一份cc1plus.exe,改名为cc1.exe,编译c源码成功!

到这里就真相大白了,原来这个 5.0.0.0版本没有提供cc1.exe,而只是提供了cc1plus.exe,因此编译C++源码没问题,但编译C源码就不行(但也不报错)。上面我采用复制cc1plus并改名的方法只是权宜之计,下面是正确的解决方法(任选其一):

1.下载一份3.4.5版本的cc1.exe
2.下载最新的MinGW,然后在Dev-C++中新增一个编译器配置,将其设置为使用MinGW编译。

关于MinGW是什么,可以看看这篇文章,如果想更深入的了解Dev-C++的使用与配置,这一系列的文章绝对不能错过。