
나는 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은 mingw 디렉토리에 있는 make
첫 번째 gcc.exe
경로를 가져오고 오류가 표시됩니다.
경로 혼란을 제거하려면 %PATH%
환경 변수를 올바르게 구성해야 합니다. 아래 링크에서 환경 변수를 편집하는 방법에 대한 자세한 내용을 알아보세요. 여기서는 간단한 개요를 제시합니다. Win+를 사용하여 실행 대화 상자를 엽니다 R. 입력 control.exe
하고 Enter를 누르세요. 시스템 및 보안 > 시스템 > 고급 시스템 설정 > 환경 변수 > 시스템 변수 > 경로로 이동합니다.
"Path" 변수를 두 번 클릭합니다. "환경 변수 편집" 창이 나타납니다. 키를 사용하여 C:\cygwin
두 경로를 삭제합니다 .C:\Program Files\mingw\bin
Delete
이제 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