Не удалось скомпилировать с помощью команды make

Не удалось скомпилировать с помощью команды make

Я работаю на 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 и добавил bin в путь.

решение1

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

$ 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%переменная среды должна быть настроена правильно. Более подробную информацию о том, как редактировать переменные среды, можно найти по ссылкам ниже. Здесь я даю простую схему. Откройте диалоговое окно «Выполнить» с помощью Win+ R. Введите control.exeего и нажмите Enter. Перейдите в раздел «Система и безопасность» > «Система» > «Дополнительные параметры системы» > «Переменные среды» > «Системные переменные» > «Путь».

Системные_переменные

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

Изменить_путь_переменную

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

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

Похожие вопросы и ответы:

Связанный контент