CreateProcess: нет такого файла или каталога - PullRequest
43 голосов
/ 03 октября 2010

Я получаю эту ошибку всякий раз, когда пытаюсь запустить GCC вне его установочного каталога (E:\MinGW\bin).

Итак, допустим, я нахожусь в E:\code и у меня есть файл с именем one.c. Бег: gcc one.c -o one.exe выдаст мне эту ошибку:

gcc: CreateProcess: No such file or directory

Единственный обходной путь - перейти к его установочному каталогу, запустить оттуда gcc и указать все остальные пути. Моя переменная среды Path содержит E:\MinGW\bin.

Есть предложения по устранению этой проблемы? Я использую Windows XP SP3.

Ответы [ 24 ]

1 голос
/ 13 апреля 2013

Эта проблема связана с тем, что при компиляции с помощью Mingw GCC вы используете заглавные суффиксы stuff.C , а не нижний регистр stuff.c.Например, когда вы сделаете так:

gcc -o stuff stuff.C

, вы получите сообщение: gcc: CreateProcess: No such file or directory

Но если вы сделаете это:

 gcc -o stuff stuff.c

, тогдаоно работает.Я просто не знаю почему.

1 голос
/ 29 января 2014

У меня возникла похожая проблема.Первоначально, добавление папки bin GCC в мой системный путь не решило проблему.Я нашел два решения.

Первым было запустить пакетный файл, который я нашел в корне установки MinGW, mingwbuilds.bat.Он (очевидно) запускает командную строку, настроенную правильно для запуска GCC.Второй - удалить двойные кавычки из папки установочного бина GCC, которую я добавил в переменную пути пользователя.Я попытался сделать это после того, как заметил, что пакетный файл не использует двойные кавычки вокруг пути установочного лотка.

Дополнительные сведения

Я случайно нашел пакетный файл при просмотре дерева папок установки, пытаясь найтиисполняемые файлы, которые не запускались (согласно выводу -v).Я нашел некоторую информацию в вики MinGW, http://www.mingw.org/wiki/Getting_Started, в разделах «Предостережения и параметры среды», которая указывает, почему установщик MinGW не устанавливает системный или пользовательский путь для включения папки установки.Похоже, это подтверждает, что командный файл предназначен для запуска командной строки, подходящей для запуска GCC из командной строки Windows.

1 голос
/ 15 декабря 2010

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

0 голосов
/ 20 ноября 2012

Эта проблема может возникнуть, если у вас разные версии программ.

Например, у вас есть годик gcc, и вы хотите скомпилировать исходный код C ++. Если вы используете mingw-get для установки g++, gcc и g++ внезапно будут иметь разные версии, и вы наверняка окажетесь в этой ситуации.

Запуск mingw-get update и mingw-get upgrade решил эту проблему для меня.

0 голосов
/ 14 февраля 2015

Хотя пост старый, у меня была такая же проблема с mingw32 против 4.8.1 на 2015/02/13. Компиляция с использованием Eclipse CDT не удалась с этим сообщением. Попытка из командной строки с параметром -v также не удалась. Мне также не хватало исполняемого файла cc1plus.

Причина: Я скачал командную строку и графический установщик с сайта mingw32. Я использовал это для первоначальной установки mingw32. Используя графический интерфейс, я выбрал базовые инструменты, выбрав компиляторы c и c ++.

Этот установщик выполнил неполную установку 32-битного компилятора c ++. У меня были файлы g ++ и cpp, но нет исполняемого файла cc1plus. Попытка выполнить обновление не удалась, поскольку установщик предположил, что у меня все установлено.

Чтобы исправить я нашел эти сайты: http://mingw -w64.sourceforge.net / http://sourceforge.net/projects/mingw-w64/ Я скачал и запустил эту «онлайн-установку». Конечно же, этот содержит недостающие файлы. Я изменил свою переменную PATH и указал на папку «bin», содержащую исполняемый файл g ++. Rebooted. Установлено 64-битное Eclipse. Открыл Eclipse и программу на С ++ «Hello World» скомпилировали, выполнили и отладили правильно.

Примечание: 64-битный установщик по умолчанию настроен на UNIX. Почему установщик не может определить ОС ??? Обязательно измените их.

Я провел весь вечер, занимаясь этим. Надеюсь, это кому-нибудь поможет.

0 голосов
/ 17 декабря 2014

Я получал это сообщение об ошибке, потому что я использовал MinGW-w64, а команды в <install path>\bin имели странный префикс.Я попытался вызвать исполняемые файлы в каталогах «target alias», а не в каталогах <install path>\bin, что привело к еще большему количеству проблем.Это нет-нет согласно FAQ .Решение для меня тогда состояло в том, чтобы создать символические ссылки на все префиксные команды.Я открыл командную строку с повышенными привилегиями и использовал что-то вроде mklink gcc.exe x86_64-w64-mingw32-gcc.exe для каждого исполняемого файла, и теперь моя сборка работает.

0 голосов
/ 26 августа 2014

попробуйте ввести путь в системные переменные вместо ввода пользовательских переменных в переменные окружения.

0 голосов
/ 12 июня 2014

У меня была такая же проблема, и я попробовал все безрезультатно. Для меня исправили проблему, изменив порядок путей к библиотекам в переменной PATH.У меня был Cygwin, а также некоторые другие компиляторы, так что, вероятно, между ними произошла какая-то коллизия.Что я сделал, так это поставил C: \ MinGW \ bin;путь прежде, чем все другие пути, и это решило проблему для меня!

0 голосов
/ 16 декабря 2010

Похоже, есть несколько выпусков дистрибутива для MinGW. Какой вы пробовали? Для справки, я столкнулся с той же самой проблемой, что и OP, и дистрибутив, который я получил, был от TDM-GCC 4.5.1.

Я нашел дистрибутив MinGW здесь , кажется, работает намного лучше и правильно все настраивает. Так что для любого, кто сталкивается с этой запаздывающей ошибкой createprocess-no-such-file-or-directory 'и не может заставить что-то работать, удалите существующий MinGW и попробуйте тот, который я связал.

0 голосов
/ 03 августа 2015

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

У меня уже был установлен компилятор g ++ через MinGW (пакет mingw32-gcc-g ++ ), но мне нужен был компилятор C, поэтому я запустил mingw-get-setup.exe, где я мог его получить установите пакет mingw32-base , тот, что с компилятором C.

Увы! У меня была эта ошибка при использовании gcc для компиляции:

gcc: ошибка: процесс создания: нет такого файла или каталога

Что я сделал, все еще используя Менеджер установки MinGW, я удалил пакеты компилятора C и C ++, а именно mingw32-base и mingw32-gcc-g ++ , а также удалил Сам каталог C: \ MinGW. Затем я перезапустил mingw-get-setup.exe, установил mingw32-base и вуаля, все заработало :)

...