如何解决Dev-C++中failed to execute的问题

好久没有写过博客了。。这主要是因为我现在把注意力都放在计算机的基础知识和数学知识上面。

好了废话不多说,我们开始今天的主题。

很多人都问我写C语言使用哪个编译器比较好,这个问题问的相当小白。但是我大概能明白背后的意思:让我推荐一种工作环境。对于新人向的工作环境,我一般都是推荐——大的程序(项目)使用宇宙第一IDE Visual Studio,小的程序(例如平时的一些练习,短小精悍的算法题)使用Dev-C++,但是有部分人在使用Dev-C++的时候,会出现以下问题:

如何解决Dev-C++中failed to execute的问题

 程序没有任何输出,控制台上就这么两句话,让人摸不着头脑。照理说这种问题问得相当基础,毕竟你在写HELLO WORLD时就可能碰到,一般而言百度一下就解决了,不过今天我会提这个问题,就是因为百度上没有这个问题的答案。

1. 可能的原因:编译器平台错了

如何解决Dev-C++中failed to execute的问题

原来是操作系统和编译器运行的平台不匹配的问题, 但是我的电脑是64位(X64)的,用的也是64位平台的gcc,为什么也不行呢?而且巧合的是,对于某一部分程序,这种方法竟然还真的是有效的:

如何解决Dev-C++中failed to execute的问题

 这个原理至今我也没有搞清楚,但毫无疑问这个结果是错误的,因为我系统的配置(如何查看系统的配置?控制面板——系统和安全——系统)就是64位:

如何解决Dev-C++中failed to execute的问题

 修改编译器后,再次进入Dev-c++时提示:你根本就没有32位的编译器(没有编译器却能编译,这个也很诡异)

 如何解决Dev-C++中failed to execute的问题

如果你认为不需要搞清楚为什么,只要能编译并执行就行,那你就大错特错了,因为我用32位编译器换了个程序,还是不能编译:

 

如何解决Dev-C++中failed to execute的问题

2. 可能的原因:文件没有访问权限

为什么要提出文件没有访问的权限?因为不只是Dev-c++这个平台上出现了问题,如果你单独用gcc生成可执行文件的话,也是无法执行文件的,而且,一执行就会把可执行文件删除:

如何解决Dev-C++中failed to execute的问题

这个答案其实也是有问题的,首先,如果真的有权限的话,可以以管理员的身份打开cmd在执行,事实上,也会出现类似的问题,其次,我们可以查看文件夹的共享情况,发现任何人对它都有绝对的控制权(查看方式:文件夹属性——安全):

如何解决Dev-C++中failed to execute的问题

看起来至少这个问题,在我的计算机上,已经是平台无关的了。可执行文件的执行被阻止,点击不仅没执行,还把可执行文件删了,这一切一切,都指向了下面的第三方软件。。

3. 可能的原因:杀毒软件

在我同(er)学(zi)的提醒下,我发觉问题可能出自杀毒软件,因为杀毒软件会发现修改系统,然后把相应文件删除。我的电脑上使用的杀毒软件是McAfee,把它的即时扫描关(你甚至都找不到关闭它的按钮)了就可以了。怎么说呢?虽然说McAfee经常把我下载的软件和生成的可执行文件当流氓软件删掉,但不可否认它的强大性。很多产品(包括操作系统在内),都越来越简单化——用户无需自己进行复杂的配置。这对只是简单使用电脑的人群来说是很友好,但是对程序员就不一样了。

4. 总结

我在写这篇博客的时候,主线是按照自己的问题,以及自己的思路来的,我在上文中排除了一些原因,但这都是基于我自己的电脑。不过大家也可以看到我在各个标题中使用的词是“可能的原因”——啥意思,有可能是真的这一步错了。具体的可以看我的分析,再结合自己的情况即可。