Я использую следующее программное обеспечение: Eclipse 20190917-1200, minGW GCG, Windows 10.
Я использую мастер «C ++ Managed Build» и выбираю «Hello World C ++ Project». Затем я создаю программу, нажимая CTRL + B, и получаю следующий результат.
Info: Internal Builder is used for build
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\HelloWorld.o" "..\\src\\HelloWorld.cpp"
g++ -o HelloWorld.exe "src\\HelloWorld.o"
15:22:23 Build Finished. 0 errors, 0 warnings. (took 1s.262ms)
Я также могу запустить HelloWorld.exe в eclipse и увидеть «Hello World» в консоли. Пока все в порядке.
Затем я делаю небольшое изменение в строке 14 и заменяю cout << "Hello World" << endl; // prints Hello World
на cout << "Hello World again" << endl; // prints Hello World
и снова пытаюсь построить. Произойдет сбой со следующей ошибкой:
Info: Internal Builder is used for build
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\HelloWorld.o" "..\\src\\HelloWorld.cpp"
g++ -o HelloWorld.exe "src\\HelloWorld.o"
C:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot open output file HelloWorld.exe: Permission denied
collect2.exe: error: ld returned 1 exit status
15:26:16 Build Failed. 1 errors, 0 warnings. (took 1s.111ms)
Таким образом, похоже, что HelloWorld.exe все еще запущен. Однако Eclipse сообщает, что он был прекращен. И также нет процесса HelloWorld.exe, отображаемого в диспетчере задач.
Сначала я не могу удалить файл «HelloWorld.exe» в Eclipse или Windows (в разрешении отказано). Когда я закрываю eclipse, .exe можно удалить, и я могу построить снова.
Кажется, что какая-то часть eclipse читает .exe и не позволяет мне удалить его, но я действительно понятия не имею, что это могло быть.