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

我已经通过GUI安装程序在Windows 8(64位)中安装了MinGW C编译器。 但是当我尝试编译C程序时,gcc说: gcc:CreateProcess:没有这样的文件或目录

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

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

  1. [已编辑]将C:\ MinGw \ libexec \ gcc \ mingw32 \ 4.7.2添加到我的系统PATH
  2. 通过mingw-get CLI卸载并重新安装gcc:

    mingw-get删除mingw32-gcc
    mingw-get install mingw32-gcc

其他建议?

编辑:详细的gcc输出:

> 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:\mingw\bin\../lib/gcc/mingw32/4.7.2/ OPTIONS.C -quiet -dumpbase OPTIONS.C -mtune=i386 -march=i386 -auxbase OPTIONS - version -o C:\Users\elvis\AppData\Local\Temp\cc4fWSvg.s gcc: error: CreateProcess: No such file or directory 

您不应将C:\MinGw\libexec\gcc\mingw32\4.7.2到路径中。

添加: c:\MinGW\bin

您可能需要重新启动才能确保所有进程都可以正常使用该路径。

另一个建议是使用不同的MinGW发行版。 自从我使用“官方”MinGW发行版以来,已经有很长一段时间了,因为安装步骤是如此的拜占庭和脆弱。 我听说他们已经对安装程序做了很大的改进,但从我听到它仍然看起来相当复杂和脆弱。

TDM的安装程序正常工作,但我认为TDM版本不是4.7.2。

nuwen发行版的安装只是解压缩你想要的东西(我喜欢它!)并确保路径指向gcc.exe的位置。 Nuwen还打包了boost库,这很不错。


我的情况有帮助,这是我从gcc -v hello.c得到的( c:\mingw.4.7.2\binc:\mingw.4.7.2\bin中):

 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.2\bin\../lib/gcc/i686-pc-mingw32/4.7.2/ hello.c -quiet -dumpbase hello.c -mtune=generic -march=i686 -auxbase hello -version -o C:\Users\mikeb\AppData\Local\Temp\cct1oltc.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.2\bin\../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.2\bin\../lib/gcc/i686-pc-mingw32/4.7.2/include c:\mingw.4.7.2\bin\../lib/gcc/i686-pc-mingw32/4.7.2/../../../../include c:\mingw.4.7.2\bin\../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:\Users\mikeb\AppData\Local\Temp\ccqRcYAj.o C:\Users\mikeb\AppData\Local\Temp\cct1oltc.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.oc:/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:\Users\mikeb\AppData\Local\Temp\ccqRcYAj.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 

就我而言,我在MinGW中卸载了一些项目以节省SSD上的空间。 安装mingw32-gcc dev类为我解决了这个问题。

我有同样的错误。 我有64位赢7 OS。 首先我安装了32位MinGW,gcc安装成功,但显示此错误。 尝试安装64位MinGW但无法安装。 搜索了很多,尝试了很多东西,但没有任何效果。

最后从这个链接安装了“tdm64-gcc-5.1.0-2”>> https://sourceforge.net/projects/tdm-gcc/?source=typ_redirect

它一次性安装和工作,没有任何错误。 没有什么特别的尝试。

而基本的重点是,安装后需要在env路径上添加“bin”目录(在我的情况下为’C:\ TDM-GCC-64 \ bin’)。 然后在控制台>>“gcc –version”上从此命令检查gcc安装,这将显示已安装的gcc版本。

在我的情况下,安装程序mingw-get-setup.exe无法下载一些文件,因此gcc复杂工具链被破坏,当重新运行mingw-get-setup.exe并获取丢失的文件时,就可以了。

就我而言,多个工具链已将不同的gcc安装放入PATH。

(这变成了一个开关!)

在我的例子中,在指定-flto时摆脱[=n]参数解决了问题。

具体而言,而不是使用

 -flto=6 

在CFLAGS,CXXFLAGS和LDFLAGS中,我现在使用的很简单

 -flto 

看起来这是一个MinGW-w64错误,此时我认为我不确定它是否可能是由我在调用make时使用-j6参数引起的。

为了将来参考,我的整个命令行如下:

 mingw32-make -f makefile.gcc CFLAGS="-std=c11 -pipe -O3 -flto" CXXFLAGS="-std=c++14 -pipe -O3 -flto" LDFLAGS="-pipe -O3 -flto -static-libgcc -static-libstdc++ -s -Wl,--allow-multiple-definition" BUILD=release RUNTIME_LIBS=static DEBUG_FLAG=0 USE_AUI=0 USE_HTML=0 USE_MEDIA=0 USE_OPENGL=0 USE_PROPGRID=0 USE_QA=0 USE_RIBBON=0 USE_RICHTEXT=0 USE_STC=0 USE_WEBVIEW=0 USE_XRC=0 CFG="-stl-static_runtime-O3-flto" -j6 

这是用于构建wxWidgets的“最小样本”。 关于-Wl,--allow-multiple-definition :它旨在规避另一个工具链错误。 更多信息在这里和这里 。

我安装了官网的 MinGW。
我选择“基本设置” (我只想得到c编译器),并且我标记了所有包,在这个安装之后我添加了路径,在我的情况下。

C:\ MinGW的\ bin中。

我创建了一个ac文件

C:\ Users \ christian \ Documents \ C projects \

名称为untitled1.c

我试着用这个命令

gcc untitled.c

命令promt向我展示了这条消息。

gcc:CreateProcess:没有这样的文件或目录


我是如何解决这个问题的?
我删除了所有包裹,

– 打开“MinGW安装管理器”
– 选择“基本设置”。
– 标记删除所有包。
– 选择“安装”点击。
– 单击“应用更改”。
– 你可以再次安装它们。


操作系统

  • 版本:Windows 10 Pro
  • 版本:1607
  • Os build:14393.187

我也有同样的问题。

我的文件夹中有一个startgcc.bat
在我的PATH分配中删除双引号后,我没关系。 我的蝙蝠脚本

 @title gcc-mingw @rem @cd /d %~dp0 @rem below line will fail and got error: gcc.exe: error: createprocess: no such file or directory @rem @set path="C:\mingw64\bin";%path% @rem below lines works ok without double quotation marks @set path=C:\mingw64\bin;%path% @set path=C:\mingw64\opt\bin\;%path% @cmd