#c #g #mingw
#c #g #mingw
Вопрос:
Я выполнил чистую установку MinGW в Windows 7 32bit с помощью установщика GUI и установил
- ming32-base-bin
- mingw32-gcc-g -bin
- msys-base-bin
При попытке скомпилировать простое «Привет World.cpp » из cmd.exe я получаю сообщение об ошибке:
C:UsersLorenzoDesktop >g «Привет World.cpp » -о»Привет World.exe » -m32 g : неустранимая ошибка: не удается выполнить «cc1plus»: CreateProcess: нет такого файла или каталога. компиляция завершена.
Странно то, что, взяв файл с рабочего стола и поместив его поверх g .exe (чтобы я открыл файл с приложением) в каталоге MinGW, я не получаю никаких ошибок.
Временное исправление, которое я нашел, заключалось в том, что новая переменная environmet указывала на папку, в которой находится cc1plus (C:MinGWlibexecgccmingw329.2.0 ). Программа запускается, но не включает библиотеки из C:/MinGw/lib и C:/MinGw/Include , я должен включить их вручную, чего не должно произойти (я думаю). Я не хочу делать это грубое исправление, так как знаю, что со временем столкнусь с некоторыми другими проблемами.
Комментарии:
1. CreateProcess не является функцией glibc. Это Windows API (существует в windows.h и Kernel32.dll ). Таким образом, g ** недопустим. Пожалуйста, используйте компилятор Win32 C или замените CreateProcess как функцию exec().
2. Это звучит как проблема с вашими переменными среды. Как вы
%PATH%
выглядите?3. @SamuelD.Muprhy извините, но я действительно не понимаю, что вы говорите. должен ли я запускать команду с другого терминала? запустить другой компилятор? извините, но я совсем новичок в этом.
4. @Botje Путь: «C:Program ФайлыОбщие FilesOracleJavajavapath;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:MinGWbin;»
5. И где в вашей системе находится cc1plus.exe ? Похоже, это также должно быть на вашем ПУТИ.
Ответ №1:
ОК. Я нашел решение с некоторой удачей.
Это так же просто, как добавить .exe в g
> g .exe *input file* -o*output.exe*
Не знаю, ошибка это или нет, но у меня это работает.
Комментарии:
1. Также я бы очень рекомендовал избегать пробелов в путях и именах файлов.
Ответ №2:
Я не уверен, какой именно MinGW вы использовали, но лучше использовать MinGW-w64. Существует автономная сборка, которую вы можете получить из http://winlibs.com / это не требует установки. На сайте также приведены некоторые инструкции по его использованию.
Комментарии:
1. почему лучше использовать MinGW-w64?
2. @L_or_Enzo он более современный (поддерживает API более последних версий Windows) и поддерживает как 32, так и 64-разрядные версии Windows.