【问题标题】:Yet Another MinGW "gcc: error: CreateProcess: No such file or directory"另一个MinGW“gcc:错误:CreateProcess:没有这样的文件或目录”
【发布时间】:2012-10-30 14:15:06
【问题描述】:

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

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

特别是,(在CreateProcess: No such file or directory之后)我尝试过:

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

    mingw-get 删除 mingw32-gcc
    mingw-get 安装 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\"MinGW-Version" 您使用的实际文本还是您使用的编译器版本。还有你硬盘上的 gcc.exe 在哪里
  • 不,这只是一个例子,我使用的路径是正确的。 gcc.exe在MinGW安装树的\bin目录下。
  • 除非您能提供更多信息来说明不同之处,否则这与您引用的问题完全相同。
  • 可能@alk 表示编译程序的完整命令,而不是安装。还是您使用的是 IDE?
  • 尝试运行gcc -v helloWorld.c 并将结果粘贴到此处。它应该告诉它正在尝试运行什么。

标签: c gcc windows-8 mingw


【解决方案1】:

您不应将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

【讨论】:

  • 我已经在我的 PATH 中设置了c:\MinGW\bin。我会尝试不同的发行版,谢谢你的提示。
  • nuwen 发行版运行良好,谢谢。我可以考虑解决这个问题。顺便说一句,我希望 mingw 开发人员会调试它。
  • TDM 工作完美,安装起来也很简单。非常感谢您的帮助。
  • 实际上,就我而言,您提到的路径必须与 c:\MinGW\bin 一起在路径中。添加带有版本号的路径为我解决了 CreateProcess 问题
  • nuwen 发行版解决方案可以无缝运行。它还有一个用于设置所有环境变量的 bat 文件
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    我有同样的错误。我有 64 位 win 7 操作系统。首先我安装了 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 版本。

    【讨论】:

      【解决方案4】:

      我安装了官方website的MinGW。
      我选择“Basic Setup”(我只想获得c编译器),并标记了所有包,在此安装之后,我添加了路径。

      C:\MinGW\bin.

      我在

      中创建了一个c文件

      C:\Users\christian\Documents\C 项目\

      名称为 untitled1.c

      我尝试使用命令

      gcc untitled.c

      命令提示符向我显示了该消息。

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


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

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


      操作系统

      • 版本:Windows 10 专业版
      • 版本:1607
      • 操作系统版本:14393.187

      【讨论】:

        【解决方案5】:

        我也有同样的问题。

        我的文件夹中有一个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
        

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

            在我的例子中,多个工具链将不同的 gcc 安装放入 PATH。

            (这变成了开关!)

            【讨论】:

              【解决方案8】:

              在我的例子中,在指定-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:它旨在规避另一个工具链错误。更多信息herehere

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2021-10-31
                • 2015-04-18
                • 2011-12-19
                • 2021-10-10
                • 1970-01-01
                • 1970-01-01
                • 2014-05-09
                相关资源
                最近更新 更多