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

434
Blackwood

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

0
C: \ cygwin, makefile.mak, вы подразумеваете под опцией include это? (CRYPTO_SUBSYSTEM = openssl включает makefile-common) 6 лет назад 0
`c: / program files / mingw / bin / gcc.exe` не является компилятором cygwin или кросс-компилятором. Вы смешиваете Cygwin Make с не Cygwin компилятором, и он не работает. matzeri 6 лет назад 2
как мне это исправить? потому что я установил и Cygwin и Mingw 6 лет назад 0
@Biswapriyo line 85th `$ (CC) $ (CCFLAGS) $ <-o $ @` 6 лет назад 0
@Biswapriyo C: \ Program Files \ Common Files \ Oracle \ Java \ javapath; C: \ Windows \ system32; C: \ Window s; C: \ Windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1. 0 \; c: / программные файлы / mingw / bin, c: /programfiles/mingw/bin/gcc.exe; C: \ gnuwin32 \ bin, C: \ ProgramFiles \ GnuWin3 \ bin; C: \ Program Files \ GnuWin32 \ бен \ make.exe; C: \ Cygwin \ Bin; 6 лет назад 0
ценю вашу помощь, приятель 6 лет назад 0

1 ответ на вопрос

0
Biswapriyo

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

$ 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. Перейдите в Система и безопасность> Система> Расширенные настройки системы> Переменные среды> Системные переменные> Путь.

System_Variables

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

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 

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

@ bayern6 О, я что-то пропустил в mingw. Кстати, в какой среде вы используете Cygwin или Mingw? У вас есть Mingw в 64 бит. Biswapriyo 6 лет назад 0
Не то. Я имею в виду `make -f makefile.mak`. также попробуйте сделать другие проекты, такие как Mintty в GitHub. Biswapriyo 6 лет назад 0
/ cygdrive / b / tpm / src $ make -f makefile.mak "c: / программные файлы / mingw / bin / gcc.exe" -Wall -Wnested-externs -ggdb -O0 -c -DTPM_WINDOWS -I "c: / программные файлы / MinGW / включают "-I" c: / программные файлы / openssl / включают "-I ../ utils -I. -DNO_BIT_FIELD_STRUCTURES AlgorithmCap.c -o AlgorithmCap.o make: *** [makefile.mak: 85: AlgorithmCap.o] Ошибка 1 6 лет назад 0
https://imgur.com/a/EAI4ID3 путь: C: \ ProgramFiles \ CommonFiles \ Oracle \ Java \ javapath;% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \ 6 лет назад 0
Прокрутите вниз раздел системных переменных. Вы видели какие-либо пути с "Mingw"? Если нет, то я вне всякой идеи. Biswapriyo 6 лет назад 0
Нет, нет пути с Mingw: / 6 лет назад 0

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