另一个MinGW“gcc:错误:CreateProcess:没有这样的文件或目录"错误、文件、目录、MinGW

2023-09-06 05:43:20 作者:戲子

我已经通过 GUI 安装程序在 Windows 8(64 位)中安装了 MinGW C 编译器.但是当我尝试编译一个 C 程序时,gcc 说:gcc: CreateProcess: No such file or directory

I have installed MinGW C compiler in Windows 8 (64 bit) through the GUI installer. But when I try to compile a C program, gcc says: gcc: CreateProcess: No such file or directory

这是一个常见的错误,我已经尝试了我找到的所有解决方案,但没有成功.

It is a common bug, and I have tried all the solutions I found, without success.

特别是(在 CreateProcess:没有这样的文件或目录) 我尝试过:

In particular, (following CreateProcess: No such file or directory) I have tried to:

[已编辑] 将 C:MinGwlibexecgccmingw324.7.2 添加到我的系统路径

通过mingw-get CLI卸载并重新安装gcc: Add C:MinGwlibexecgccmingw324.7.2 to my system PATH

Uninstall and re-install gcc through mingw-get CLI:

mingw-get 删除 mingw32-gccmingw-get 安装 mingw32-gcc

mingw-get remove mingw32-gcc mingw-get install mingw32-gcc

其他建议?

详细的 gcc 输出:

verbose gcc output:

> gcc -v helloWorld.c
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.7.2/lto-
wrapper.exe
Target: mingw32
Configured with: ../gcc-4.7.2/configure --enable-languages=c,c++,ada,fortran,obj
c,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgo
mp --disable-win32-registry --enable-libstdcxx-debug --disable-build-poststage1-
with-cxx --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw
Thread model: win32
gcc version 4.7.2 (GCC)
COLLECT_GCC_OPTIONS='-v' '-mtune=i386' '-march=i386'
cc1plus -quiet -v -iprefix c:mingwin../lib/gcc/mingw32/4.7.2/
OPTIONS.C -quiet -dumpbase OPTIONS.C -mtune=i386 -march=i386 -auxbase OPTIONS -
version -o C:UserselvisAppDataLocalTempcc4fWSvg.s
gcc: error: CreateProcess: No such file or directory

推荐答案

你不应该将 C:MinGwlibexecgccmingw324.7.2 添加到路径中.

You shouldn't add C:MinGwlibexecgccmingw324.7.2 to the path.

添加:c:MinGWin

您可能需要重新启动以确保该路径对所有进程都可用.

You may need to reboot to ensure that the path is made available to all processes properly.

另一个建议是使用不同的 MinGW 发行版.自从我使用官方"MinGW 发行版以来已经有很长时间了,因为安装步骤是如此的拜占庭式和脆弱的.我听说他们在安装程序方面取得了很大进步,但据我所知,它似乎仍然相当复杂和脆弱.

Another suggestion is to use a different MinGW distribution. It's been a long time since I used an 'official' MinGW distribution because the installation steps were so byzantine and fragile. I've heard they've made large advances to the installer, but from what I hear it still seems to be rather complicated and fragile.

TDM 的安装程序 可以正常工作,但我认为 TDM 版本还没有到 4.7.2.

TDM's installer just works, but I think the TDM release isn't quite to 4.7.2.

nuwen 发行版的 安装只是将档案解压到您想要的地方(我喜欢它!)并确保路径指向 gcc.exe 的位置.Nuwen 还打包了 boost 库,很不错.

The nuwen distribution's installation is just unpacking an archive where you want the thing (I love that!) and making sure the path points to the location of gcc.exe. Nuwen also packages the boost libraries, which is nice.

如果它有帮助,这是我从 gcc -v hello.c 得到的(c:mingw.4.7.2in 在路径中):

I case it helps, here's what I get from gcc -v hello.c (c:mingw.4.7.2in is in the path`):

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw.4.7.2/bin/../libexec/gcc/i686-pc-mingw32/4.7.2/lto-wrapper.exe
Target: i686-pc-mingw32
Configured with: ../src/configure --prefix=/c/temp/gcc/dest --with-gmp=/c/temp/gcc/gmp --with-mpfr=/c/temp/gcc/mpfr --with-mpc=/c/temp/gcc/mpc --enable-languages=c,c++ --with-arch=i686 --with-tune=generic --disable-libstdcxx-pch --disable-nls --disable-shared --disable-sjlj-exceptions --disable-win32-registry --enable-checking=release --enable-lto
Thread model: win32
gcc version 4.7.2 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i686'
 c:/mingw.4.7.2/bin/../libexec/gcc/i686-pc-mingw32/4.7.2/cc1.exe -quiet -v -iprefix c:mingw.4.7.2in../lib/gcc/i686-pc-mingw32/4.7.2/ hello.c -quiet -dumpbase hello.c -mtune=generic -march=i686 -auxbase hello -version -o C:UsersmikebAppDataLocalTempcct1oltc.s
GNU C (GCC) version 4.7.2 (i686-pc-mingw32)
    compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version 3.1.1-p2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "c:mingw.4.7.2in../lib/gcc/i686-pc-mingw32/4.7.2/../../../../i686-pc-mingw32/include"
ignoring duplicate directory "c:/mingw.4.7.2/lib/gcc/../../lib/gcc/i686-pc-mingw32/4.7.2/include"
ignoring nonexistent directory "c:/temp/gcc/dest/include"
ignoring nonexistent directory "/c/temp/gcc/dest/include"
ignoring duplicate directory "c:/mingw.4.7.2/lib/gcc/../../lib/gcc/i686-pc-mingw32/4.7.2/include-fixed"
ignoring nonexistent directory "c:/mingw.4.7.2/lib/gcc/../../lib/gcc/i686-pc-mingw32/4.7.2/../../../../i686-pc-mingw32/include"
ignoring nonexistent directory "/mingw/include"
#include "..." search starts here:
#include <...> search starts here:
 c:mingw.4.7.2in../lib/gcc/i686-pc-mingw32/4.7.2/include
 c:mingw.4.7.2in../lib/gcc/i686-pc-mingw32/4.7.2/../../../../include
 c:mingw.4.7.2in../lib/gcc/i686-pc-mingw32/4.7.2/include-fixed
End of search list.
GNU C (GCC) version 4.7.2 (i686-pc-mingw32)
    compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version 3.1.1-p2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 8461a53e6fc78ff58191bda61fe9586d
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i686'
 as -v -o C:UsersmikebAppDataLocalTempccqRcYAj.o C:UsersmikebAppDataLocalTempcct1oltc.s
GNU assembler version 2.22 (i686-pc-mingw32) using BFD version (GNU Binutils) 2.22
COMPILER_PATH=c:/mingw.4.7.2/bin/../libexec/gcc/i686-pc-mingw32/4.7.2/;c:/mingw.4.7.2/bin/../libexec/gcc/
LIBRARY_PATH=c:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/;c:/mingw.4.7.2/bin/../lib/gcc/;c:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/../../../
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i686'
 c:/mingw.4.7.2/bin/../libexec/gcc/i686-pc-mingw32/4.7.2/collect2.exe -Bdynamic c:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/../../../crt2.o c:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/crtbegin.o -Lc:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2 -Lc:/mingw.4.7.2/bin/../lib/gcc -Lc:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/../../.. C:UsersmikebAppDataLocalTempccqRcYAj.o -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt c:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/crtend.o