在Dev-C++中无法将C源码编译成exe,提示“源文件未编译”的解决办法
今天下载了一堆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++的使用与配置,这一系列的文章绝对不能错过。
- 文章ID:1150
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/1150/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。