web-dev-qa-db-ja.com

さらに別のMinGW「gcc:エラー:CreateProcess:そのようなファイルまたはディレクトリはありません」

Windows 8(64ビット)にGUIインストーラーを介して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 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
14
eang

パスにC:\MinGw\libexec\gcc\mingw32\4.7.2を追加しないでください。

追加:c:\MinGW\bin

すべてのプロセスがパスを適切に使用できるようにするために、再起動が必要になる場合があります。

別の提案は、異なるMinGWディストリビューションを使用することです。インストール手順がビザンチンで壊れやすいため、「公式の」MinGWディストリビューションを使用してから久しぶりです。彼らはインストーラーに大きな進歩を遂げたと聞きましたが、私が聞くところによると、それはまだかなり複雑で壊れやすいようです。

TDMのインストーラー は正常に機能しますが、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
10
Michael Burr

同じエラーが発生しました。 64ビットのWin 7 OSを持っています。最初に32ビットのMinGWをインストールしました。gccは正常にインストールされましたが、このエラーが表示されました。 64ビットのMinGWをインストールしようとしましたが、インストールできませんでした。たくさん検索し、多くのことを試しましたが、何もうまくいきませんでした。

このリンクから最後にインストールされた「tdm64-gcc-5.1.0-2」>> https://sourceforge.net/projects/tdm-gcc/?source=typ_redirect

インストールとエラーなしで1回の試行で動作しました。特別なことは何もしませんでした。

そして、基本的な重要なポイントは、インストール後にenvパスに「bin」ディレクトリを追加する必要があることです(私の場合は「C:\ TDM-GCC-64\bin」)。次に、コンソール>> "gcc --version"のこのコマンドからgccのインストールを確認します。これにより、インストールされているgccのバージョンが表示されます。

1
Arun

私の場合、SSDのスペースを節約するために、MinGWでいくつかのアイテムをアンインストールしました。 mingw32-gcc開発クラスをインストールすると、この問題が解決しました。

1
Dan H

私の場合、[=n]を指定するときに-fltoパラメータを取り除くことで問題は解決しました。

具体的には、

-flto=6

cFLAGS、CXXFLAGSおよびLDFLAGSでは、私は今単に使用しています

-flto


これはMinGW-w64バグのようです。現時点では、呼び出し時に-j6パラメータを使用したことが原因であるかどうかはわかりませんmake

将来の参考のために、コマンドライン全体を以下に示します。

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について:これは、さらに別のツールチェーンのバグを回避することを目的としています。詳細 ここ および ここ

0
Marc.2377

私の場合、インストーラmingw-get-setup.exe一部のファイルのダウンロードに失敗したため、再実行するとgcc複雑化ツールチェーンが壊れますmingw-get-setup.exe、失われたファイルを取得し、それは問題ありません。

0
Honghe.Wu

私の場合、複数のツールチェーンが異なるgccインストールをPATHに配置していました。

(これはスイッチに変わります!)

0
Casey

私は同じ問題を抱えています。

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
0
Michael Hou