Подтвердить что ты не робот

Еще одна MinGW "gcc: error: CreateProcess: Нет такого файла или каталога"

Я установил компилятор MinGW C в Windows 8 (64 бит) через установщик GUI. Но когда я пытаюсь скомпилировать C-программу, gcc говорит: gcc: CreateProcess: Нет такого файла или каталога

Это обычная ошибка, и я пробовал все решения, которые я нашел, без успеха.

В частности, (после CreateProcess: Нет такого файла или каталога) Я попытался:

  • [EDITED] Добавить C:\MinGw\libexec\gcc\mingw32\4.7.2 в мою систему PATH
  • Удалите и переустановите gcc через mingw-get CLI:

    mingw-get удалить mingw32-gcc
    mingw-get install mingw32-gcc

Другие предложения?

EDIT: подробный вывод 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
4b9b3361

Ответ 1

Вы не должны добавлять C:\MinGw\libexec\gcc\mingw32\4.7.2 к пути.

Добавить: c:\MinGW\bin

Вам может потребоваться перезагрузка, чтобы гарантировать, что путь будет доступен для всех процессов должным образом.

Другое предложение - использовать другой дистрибутив MinGW. Прошло много времени с того, что я использовал "официальный" дистрибутив MinGW, потому что этапы установки были настолько византийскими и хрупкими. Я слышал, что они сделали большие успехи для установщика, но из того, что я слышу, все еще кажется довольно сложным и хрупким.

Установщик TDM работает, но я думаю, что выпуск TDM не совсем до 4.7.2.

установка nuwen distribution - это просто распаковка архива, в котором вы хотите что-то (мне это нравится!) и убедитесь, что путь указывает на местоположение gcc.exe, Nuwen также упаковывает библиотеки ускорения, что приятно.


В случае, если это помогает, вот что я получаю от 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

Ответ 2

В моем случае я удалил несколько элементов в MinGW, чтобы сэкономить место на моем SSD. Установка класса mingw32-gcc dev исправила эту проблему для меня.

Ответ 3

У меня была такая же ошибка. У меня 64-битный выигрыш 7 ОС. Сначала я установил 32-битный MinGW, gcc был успешно установлен, но показал эту ошибку. Пробовал установку 64-битного MinGW, но не смог установить. Много искал, много чего делал, но ничего не работало.

Наконец, установил "tdm64-gcc-5.1.0-2" по этой ссылке → https://sourceforge.net/projects/tdm-gcc/?source=typ_redirect

Он был установлен и работал в одиночной попытке без какой-либо ошибки. Ничего особенного не пробовал.

И основным важным моментом, после установки, нужно добавить каталог "bin" в env path ( "C:\TDM-GCC-64\bin" в моем случае). Затем проверьте gcc-установку с этой команды на консоли → "gcc -version", это покажет версию gcc.

Ответ 4

В моем случае установщик mingw-get-setup.exe не смог загрузить некоторые файлы, поэтому цепочка инструментов gcc-осложнений сломана, при повторном запуске mingw-get-setup.exe и получить потерянные файлы, это нормально.

Ответ 5

В моем случае несколько наборов инструментов помещали разные установки gcc в PATH.

(Это превращается в переключатель!)

Ответ 6

В моем случае, избавление от параметра [=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: он предназначен для обхода еще одной ошибки в наборе инструментов. Подробнее здесь и здесь.

Ответ 7

Я установил MinGW из официального .
Я выбираю "Базовая установка" (мне нужен только компилятор get c), и я отметил весь пакет, после этой установки я добавил путь в моем случае.

C:.\MinGW\Bin

Я создал файл c в

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

с именем untitled1.c

Вэнь я попытался использовать команду

gcc untitled.c

команда promt показала мне это сообщение.

gcc: CreateProcess: Нет такого файла или каталога


Как я решил эту проблему?
Я удалил весь пакет,

-Открыть "Менеджер установки MinGW"
-Выберите "Базовая установка".
-Марк для удаления всех пакетов.
-Выберите "Установка". -Нажмите "Применить изменения".
-После того, как вы можете установить их снова.


Операционная система

  • Издание: Windows 10 Pro
  • Версия: 1607
  • Os build: 14393.187

Ответ 8

У меня та же проблема.

У меня есть startgcc.bat в моей папке.
Это нормально для меня сразу после удаления двойных кавычек в моем назначении PATH. моя летучая мышь script:

@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