У меня был очень длинный путь, и где-то там есть файл (не gcc.exe), а другой файл, к которому gcc.exe обращается по пути.
Итак, когда я очистил путь, это сработало
C:\MinGW>cd bin
C:\MinGW\bin>where gcc.exe
C:\MinGW\bin\gcc.exe
C:\Perl64\site\bin\gcc.exe
^^ Таким образом, запуск gcc оттуда обязательно запустит ming gcc.exe
C:\MinGW\bin>type file6.c
#include<stdio.h>
void main()
{
int num1,num2;
scanf("%2d %4d",&num1,&num2);
printf("a=%d b=%d",num1,num2);
scanf("%d",&num1);
//flushall();
printf("c=%d",num1);
}
При компиляции я получил эту ошибку
C:\MinGW\bin>gcc file6.c
gcc: error: CreateProcess: No such file or directory
Мой ПУТЬ был огромен
C:\MinGW\bin>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;C:\P......
C:\MinGW\bin>путь | grep -io "минг"
Там не было мин.
C:\MinGW\bin>Эхо МИН | grep -io "мин" МИН
(и да, этот grep работает... там не было пути)
Полностью расчистив мой путь, я заработал!
C:\MinGW\bin>set PATH=
C:\MinGW\bin>gcc file6.c
C:\MinGW\bin>
Итак, пока не ясно, что именно в PATH привело к столкновению. Какой каталог, какой файл.
Обновить-
Вышеупомянутое кажется мне правильным, но добавлю, что это также не простой случай столкновения чего-то более раннего в пути ... потому что обычно текущий каталог имеет приоритет. И здесь это так, поскольку gcc --version показывает, что он запускает ming, а не один из них в конфликтующем каталоге. Так что происходит что-то забавное, если конфликтующий каталог находится в пути), нужно либо сделать .\gcc, либо добавить .
в начало пути, либо добавить c:\MinGW\bin
перед любыми конфликтующими каталогами в пути. это бывает даже когда ты в C:\MinGW\bin
и это странно. И когда он выдает ошибку, он все еще работает с gcc Ming, но (по какой-то причине) также смотрит на конфликтующий каталог, как я вижу из монитора процесса. Здесь может быть больше ответа http://wiki.codeblocks.org/index.php?title=Installing_MinGW_with_Vista в ссылке, упомянутой в очень положительном ответе здесь
Это Ming32 бит..
Глядя на Ming 64bit, вероятно, есть та же проблема, но я вижу, что интересно, он поставляется с файлом bat, который (разумно) фактически помещает каталог bin в начало пути. И похоже, что это стандартный способ правильного запуска Ming gcc.
Code::blocks IDE (разумно) также помещает каталог bin в начало пути. Если вы запустите программу C, которая показывает переменные среды, вы увидите это.
person
barlop
schedule
13.07.2015