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이 makeC 컴파일러 경로, $(CC)C:\Program Files\mingw\bin\gcc.exe. 여기서 OP는 mingw와 cygwin을 모두 동일한 시스템에 설치했습니다. 해당 설치 프로그램이 cygwin 및 mingw를 설치하면 시스템 환경 변수 /bin에 폴더가 추가됩니다. %PATH%따라서 컴파일 타임에 cygwin은 mingw 디렉토리에 있는 make첫 번째 gcc.exe경로를 가져오고 오류가 표시됩니다.

경로 혼란을 제거하려면 %PATH%환경 변수를 올바르게 구성해야 합니다. 아래 링크에서 환경 변수를 편집하는 방법에 대한 자세한 내용을 알아보세요. 여기서는 간단한 개요를 제시합니다. Win+를 사용하여 실행 대화 상자를 엽니다 R. 입력 control.exe하고 Enter를 누르세요. 시스템 및 보안 > 시스템 > 고급 시스템 설정 > 환경 변수 > 시스템 변수 > 경로로 이동합니다.

시스템_변수

"Path" 변수를 두 번 클릭합니다. "환경 변수 편집" 창이 나타납니다. 키를 사용하여 C:\cygwin두 경로를 삭제합니다 .C:\Program Files\mingw\binDelete

편집_경로_변수

이제 cygwin.bat와 mingw.bat라는 두 개의 배치 파일을 만듭니다. 하나의 파일로 할 수 있으니 간단하게 만들어보겠습니다. 해당 배치 파일에 다음 줄을 복사합니다. 이 명령은 컴파일할 환경을 구성합니다.

  • 시그윈의 경우:
@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

유사한 Q&A:

관련 정보