在CodeBlocks中出现"找不到该文件或目录"错误

7

以下是我在CodeBlocks IDE中遵循的步骤:

Create a new project->console->C->Name->debug and release->finish

当我选择main.c并构建它时,应该会显示“Hello World!”,但我却收到了这个奇怪的错误信息mingw32-gcc.exe: error: CreateProcess: No such file or directory
我已经用这种方式编写和编译了大约20个C文件,但我不知道最近发生了什么事情导致IDE出现了问题。
我已经检查了CodeBlocks论坛并在谷歌上搜索了这个问题,但没有结果。 有任何想法吗? Bulid Log:
-------------- Build: Debug in C (compiler: GNU GCC Compiler)---------------

mingw32-gcc.exe -Wall  -g     -c "C:...\Project Files\C Codes\C\main.c" -o obj\Debug\main.o
mingw32-gcc.exe: error: CreateProcess: No such file or directory
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings (0 minutes, 0 seconds)

我三天前使用 CodeBlocks 10.02 成功编译并运行了代码,但昨天出现了错误。我以为可能是没有包含代码文件,因此从项目中移除了之前的代码,并添加了新文件 (我对大约20个程序都是这样操作的,而且总是能够得到结果); 但错误仍然存在。然后我重建了项目,但仍然出现错误。今天我卸载了版本10.02 并安装了一个新版本12.11,但还是出现了这个奇怪的错误。
注:看起来其他人也遇到了这个问题:
mingw32-g++.exe: error: CreateProcess: No such file or directory

你能否包含CodeBlocks使用的编译命令? - greatwolf
@greatwolf 我不知道你的意思是什么?也许是这个:-------------- 在C中构建:调试(编译器:GNU GCC编译器)---------------mingw32-gcc.exe -Wall -g -c "C:...\Project Files\C Codes\C\main.c" -o obj\Debug\main.o mingw32-gcc.exe: 错误: CreateProcess: 没有这个文件或目录` - Zeta.Investigator
是的,这就是我的意思,CodeBlocks 是如何调用 GCC 的?请包括完整的命令行和在构建日志中看到的状态输出。 - greatwolf
请将其添加到您的问题中,以便格式化,而不是将其作为评论。 - greatwolf
8个回答

7

终于解决了:

在我的情况下,问题是由一个名为EGCS(实验/增强GNU编译器系统)的程序引起的。我安装它作为PSCAD(电力系统CAD)的先决条件,以及FORTRAN编译器。只需将其移除即可。
(不幸的是,由于疏忽,我删除了整个PATH环境变量。那又怎样?最后我又安装了一个新的Win7,但在卸载Ubuntu时,由于启动困难造成的GRUB卸载结果,我又开始乱搞修复mbr和fixboot(但我丢失了笔记本光盘!)……总之,EGCS嘲笑了我0.5个月……)

有关此类问题的更多信息,请访问这里(Code::Blocks论坛)


3

Codeblocks似乎正确地调用了gcc -- 我没看到它被唤起的方式有什么问题。您得到的错误信息:

gcc.exe: error: CreateProcess: No such file or directory

表明您的mingw-gcc安装存在问题。由于您说这之前工作正常,这很可能意味着gcc需要运行的某些文件已损坏、被意外重命名、移动到其他位置或者意外删除。

事实上,我通过重命名cc1.exe复制了这个确切的错误。这是gcc编译C源文件所需的C编译器。在我的Mingw-4.6.3安装中,它位于./libexec/gcc/i686-w64-mingw32/4.6.3下。根据您使用的mingw版本和变体,可能会有所不同。

我建议您下载并重新安装您的gcc副本,因为手动修复可能比较棘手。


我三天前使用了CodeBlocks 10.02,并成功编译和运行了代码。昨天它显示了这个错误。我认为可能是代码文件没有被包含,所以我从项目中删除了先前的代码并添加了新文件(我对大约20个代码都是这样做的,而且得到了结果);但错误仍然存在。今天我卸载了版本10.02并安装了新版本12.11。但是我仍然遇到了这个奇怪的错误。 - Zeta.Investigator
@PooyaM 你能否尝试从命令行 shell 手动编译这个程序?运行 mingw32env.cmd 获取一个合适的 shell 环境。然后使用 gcc -Wall -g main.c -o main.exe 进行测试编译。 - greatwolf
如果有影响的话,在安装新版本后,会弹出一个提示框问我默认编译器,并将其他编译器(如Microsoft C++)标为红色。 - Zeta.Investigator
如何运行这个 'mingw32env.cmd'? - Zeta.Investigator
请注意,Codeblocks只是一个集成开发环境(IDE),它需要依赖编译器工具链才能构建任何东西。除非您确定Mingw-gcc本身可以正常工作,否则无论您在Codeblocks中做什么都没有意义。 - greatwolf
显示剩余3条评论

2
这里的答案未能解决我的问题!我的朋友帮我解决了。解决方案非常简单和直接。出现的问题是编译器无法与MinGW(Windows下的Minimalist GNU)链接,可能被其他makefile软件(如CMake等)修改过。所以解决方案是:
  1. 打开Codeblocks,在顶部工具栏中选择“设置”选项,然后选择编译器选项。
  2. 它会打开编译器设置窗口。在这里选择全局编译器设置(带有齿轮符号),在子选项中选择工具链可执行文件选项。
  3. 在此下选择编译器的安装目录。在这里浏览文件以选择:C:\Program Files(x86)\Codeblocks\MinGW\bin
  4. 现在在右侧选择“自动检测”选项。
这应该解决你的问题,我希望你明白了问题所在!祝编程愉快!

1
经过两天的努力,我从codesavory和Anand MP那里确认了解决方案。所有原因都在于工具链可执行文件。我最终发现它是cygwin的路径问题!当我更改为D:\ GreenSoft \ CodeBlocks \ MinGW后,现在编译正常了!我认为问题出现在安装步骤上:codeblocks在您的计算机上检测到到处都有现有的gcc,并让您选择一个作为您的首选项。 它甚至忘记了安装程序已经捆绑了minGW!而且它不显示检测到的gcc位于何处!因此,如果您只是确认其中一个并忘记它,它将放弃捆绑的minGW。

0

当Codeblocks编译器路径无效时,通常会出现这种情况。在我的情况下,它指向了C:/MinGW。通过其自动检测功能,Codeblocks发现了这一点。

要消除错误,您需要将路径更改回存在于Codeblocks程序文件夹中的路径。

在我的情况下,它是 - C:\Program Files (x86)\CodeBlocks\MinGW。

您可以按照以下步骤在Codeblocks中更改路径。 菜单栏->设置->编译器->工具链可执行文件。 然后输入相应的有效编译器目录路径。

希望这解决了您的问题。


0

我刚刚解决了这个错误。可能是因为我在 C-Free IDE 中执行一个文件时不小心移动了它。你所要做的就是,在你的程序文件中找到 g++.exe 文件。只需查看特定 IDE 的程序文件,找到 mingW 文件夹并在其中找到 'g++.exe'。


0

我仍然遇到了那个错误的问题。结果发现是因为在安装CodeBlocks之前我已经外部安装了MinGW。

在这种情况下,请检查您的目录路径(如上所述如何更改)是否不是C:\MinGW\bin,而是C:\Program Files (x86)\CodeBlocks\MinGW\bin,因为它可能会导致错误弹出。


0

打开命令行并输入:

mingw-get update && mingw-get install mingw32-gcc

这将下载缺失的GCC文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接