我已经通过GUI安装程序在Windows 8(64位)中安装了MinGW C编译器。 但是当我尝试编译C程序时,gcc说: gcc:CreateProcess:没有这样的文件或目录
这是一个常见的错误,我已经尝试了我找到的所有解决方案,但没有成功。
特别是,(CreateProcess: No such file or directory之后)我试图:
通过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
答案 0 :(得分:10)
您不应将C:\MinGw\libexec\gcc\mingw32\4.7.2
添加到路径中。
添加:c:\MinGW\bin
您可能需要重新启动才能确保所有进程都可以正常使用该路径。
另一个建议是使用不同的MinGW发行版。自从我使用“官方”MinGW发行版以来,已经有很长一段时间了,因为安装步骤太过拜占庭和脆弱。我听说他们已经为安装人员做了很大的进步,但从我听到的情况来看,它似乎仍然相当复杂和脆弱。
TDM's installer只是有效,但我认为TDM版本并不完全是4.7.2。
nuwen distribution's安装只是解压缩你想要的东西(我喜欢它!)并确保路径指向gcc.exe的位置。 Nuwen还打包了boost库,这很不错。
我认为这有帮助,这是我从gcc -v hello.c
得到的(c:\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.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:\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
答案 1 :(得分:1)
在我的情况下,我在MinGW中卸载了一些项目以节省SSD上的空间。安装mingw32-gcc dev类为我解决了这个问题。
答案 2 :(得分:1)
我有同样的错误。我有64位赢7 OS。首先我安装了32位MinGW,gcc安装成功,但显示此错误。尝试安装64位MinGW但无法安装。 搜索了很多,尝试了很多东西,但没有任何效果。
最后从此链接安装了“tdm64-gcc-5.1.0-2”&gt;&gt; https://sourceforge.net/projects/tdm-gcc/?source=typ_redirect
安装&amp;单次尝试没有任何错误。没有什么特别的尝试。
基本要点,安装后需要在env路径上添加“bin”目录(在我的情况下为'C:\ TDM-GCC-64 \ bin')。然后在控制台&gt;&gt;上检查此命令的gcc安装。 “gcc --version”,这将显示安装的gcc版本。
答案 3 :(得分:0)
在我的情况下,安装程序mingw-get-setup.exe
无法下载某些文件,因此gcc复杂工具链已损坏,重新运行mingw-get-setup.exe
并获取丢失的文件时,就可以了。
答案 4 :(得分:0)
就我而言,多个工具链已将不同的gcc安装放入PATH。
(这变成了一个开关!)
答案 5 :(得分:0)
我安装了专属website的MinGW 我选择“基本设置”(我只想得到c编译器),并且我标记了所有包,在这个安装之后我添加了路径,就我而言。
C:\ MinGW的\ BIN
我在
中创建了一个c文件C:\ Users \ christian \ Documents \ C projects \
名称为untitled1.c
温我尝试使用命令
gcc untitled.c
命令promt向我展示了这条消息。
gcc:CreateProcess:没有这样的文件或目录
<小时/> 我是如何解决这个问题的?
- 打开“MinGW Installation Manager”
- 选择“基本设置”。
- 标记删除所有包裹。
- 选择“安装”点击。
- 单击“应用更改” - 再次安装后。
操作系统
答案 6 :(得分:0)
我有同样的问题。
我的文件夹中有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