Я работаю над Cygwin. Большинство команд Unix работают просто отлично. Также я могу скомпилировать с g++ и gcc, но я получаю ошибку ниже, когда я выполняю make:

/cygdrive/b/tpm/src
$ make -f makefile.mak
"c:/program files/mingw/bin/gcc.exe" -Wall -Wnested-externs -ggdb -O0 -c - 
DTPM_WINDOWS -I"c:/program files/MinGW/include" -I"c:/program 
files/openssl/include" -I../utils -I. -DNO_BIT_FIELD_STRUCTURES AlgorithmCap.c -o AlgorithmCap.o
make: *** [makefile.mak:85: AlgorithmCap.o] Error 1

Обратите внимание, что я загрузил пакет make и добавил к пути корзину.

1 ответ1

0

Основная ошибка показана в этой строке:

$ make -f makefile.mak "c:/program files/mingw/bin/gcc.exe" -Wall -Wnested-externs -ggdb -O0 -c -

Эта ошибка показывает, что cygwin make находит путь к компилятору C, т.е. $(CC) в C:\Program Files\mingw\bin\gcc.exe . Здесь OP установили Mingw и Cygwin на одной машине. Когда соответствующий установщик устанавливает cygwin и mingw, он добавляет папку /bin в системную переменную среды %PATH% . Следовательно, во время компиляции cygwin make захватывает первый путь gcc.exe который находится в каталоге mingw, и появляется ошибка.

Чтобы устранить путаницу, переменная среды %PATH% должна быть правильно настроена. Более подробную информацию о том, как редактировать переменные среды, можно найти в ссылках ниже. Здесь я приведу простую схему. Открыть диалоговое окно Run с Win + R. Введите control.exe и нажмите Enter. Перейдите в Система и безопасность> Система> Расширенные настройки системы> Переменные среды> Системные переменные> Путь.

System_Variables

Дважды щелкните по переменной "Path". Вы можете увидеть окно "Изменить переменную среды". Удалите два пути C:\cygwin и C:\Program Files\mingw\bin с помощью клавиши Удалить .

Edit_Path_Variable

Теперь создайте два пакетных файла: один cygwin.bat и mingw.bat. Это можно сделать одним файлом, я просто упрощаю. Скопируйте следующие строки в соответствующих пакетных файлах. Команды настроят среду для компиляции.

  • Для Cygwin:
@echo off
C:
chdir C:\cygwin\bin
C:\cygwin\bin\bash.exe --login -i
  • Для Mingw:
@echo off
set PATH=C:\Program Files\mingw\bin;%PATH%
cmd /k

Аналогичные вопросы и ответы:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .