2013-07-10 3 views
1

cygwin에서 gcc 컴파일러가/bin을 제외한 다른 폴더에서 제대로 실행되지 않습니다. 예를 들어, 빈 작동 /에서 내 코드를 컴파일을 시도하지만/빈/myprogram에서 내가 컴파일러에서 다음과 같은 메시지가 자세한 정보 표시 옵션 사용 :cygwin에서 gcc 컴파일러가 제대로 실행되지 않습니다 (포기?)

gcc version 4.5.3 (GCC) 
COLLECT_GCC_OPTIONS='-O' '-ansi' '-v' '-c' '-mtune=generic' '-march=i686' 
/usr/lib/gcc/i686-pc-cygwin/4.5.3/cc1.exe -quiet -v -D__CYGWIN32__ -D__CYGWIN__ -D__unix__ -D__unix -idirafter /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/lib/../../include/w32api sb.c -quiet -dumpbase sb.c -mtune=generic -march=i686 -ansi -auxbase sb -O -ansi -version -o /tmp/ccyhmnJp.s 
Makefile:101: recipe for target `sb.o' failed 
make: *** [sb.o] Error 1 

다른 사람들이보고 유사한 문제 :

http://cygwin.com/ml/cygwin/2010-01/msg00939.html

"경로에서 X 제거"는 영구적 인 해결 방법이 아닌 일시적인 (이상한) 해결 방법처럼 들리지만 해결책은 무엇인지 알 수 없으므로 해결책을 찾는 것처럼 보입니다. 어쨌든 나는/bin과/bin/myprogram에서 cygcheck를 실행했다. 결과는 다음과 같습니다./빈에서

:/빈/myprogram에서

$ cygcheck /usr/lib/gcc/i686-pc-cygwin/4.5.3/cc1.exe 
C:\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\cc1.exe 
    C:\cygwin\bin\cygcloog-0.dll 
    C:\cygwin\bin\cygwin1.dll 
     C:\WINDOWS\system32\KERNEL32.dll 
     C:\WINDOWS\system32\ntdll.dll 
    C:\cygwin\bin\cyggmp-10.dll 
    C:\cygwin\bin\cygppl_c-4.dll 
     C:\cygwin\bin\cygppl-9.dll 
     C:\cygwin\bin\cyggcc_s-1.dll 
     C:\cygwin\bin\cygstdc++-6.dll 
     C:\cygwin\bin\cyggmpxx-4.dll 
     C:\cygwin\bin\cygpwl-5.dll 
    C:\cygwin\bin\cyggmp-3.dll 
    C:\cygwin\bin\cygiconv-2.dll 
    C:\cygwin\bin\cygintl-8.dll 
    C:\cygwin\bin\cygmpc-1.dll 
    C:\cygwin\bin\cygmpfr-1.dll 
    C:\cygwin\bin\cygmpfr-4.dll 
    C:\cygwin\bin\cygppl_c-2.dll 
    C:\cygwin\bin\cygppl-7.dll 
    C:\cygwin\bin\cygz.dll 

:

$ cygcheck /usr/lib/gcc/i686-pc-cygwin/4.5.3/cc1.exe 
C:\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\cc1.exe 
    C:\cygwin\bin\cygcloog-0.dll 
    C:\cygwin\usr\local\bin\cygwin1.dll 
     C:\WINDOWS\system32\ADVAPI32.DLL 
     C:\WINDOWS\system32\KERNEL32.dll 
      C:\WINDOWS\system32\ntdll.dll 
     C:\WINDOWS\system32\RPCRT4.dll 
      C:\WINDOWS\system32\Secur32.dll 
    C:\cygwin\bin\cyggmp-10.dll 
    C:\cygwin\bin\cygppl_c-4.dll 
     C:\cygwin\bin\cygppl-9.dll 
     C:\cygwin\bin\cyggcc_s-1.dll 
     C:\cygwin\bin\cygstdc++-6.dll 
     C:\cygwin\bin\cyggmpxx-4.dll 
     C:\cygwin\bin\cygpwl-5.dll 
    C:\cygwin\bin\cyggmp-3.dll 
    C:\cygwin\bin\cygiconv-2.dll 
    C:\cygwin\bin\cygintl-8.dll 
    C:\cygwin\bin\cygmpc-1.dll 
    C:\cygwin\bin\cygmpfr-1.dll 
    C:\cygwin\bin\cygmpfr-4.dll 
    C:\cygwin\bin\cygppl_c-2.dll 
    C:\cygwin\bin\cygppl-7.dll 
    C:\cygwin\usr\local\bin\cygz.dll 

가 분명한 차이가 있지만이 무슨 뜻인지 모르겠습니다. 내 시스템에

경로 반환

$ $PATH 
-bash: /usr/local/bin:/usr/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:               /cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/ProgramFiles/ImageMagick-6.8.6-Q16               :/cygdrive/c/Ruby193/bin:/cygdrive/c/Program: No such file or directory 

질문, 내가 지금 무엇을해야합니까? 대답이 경로 변수를 변경하면 무엇을 제거해야합니까? 경로 변수가 bash 자원 파일 중 하나에 저장되어 있습니까? 아니면 명령 행에서 변경해야합니까? 많은 감사합니다!

답변

1

다양한 옵션이 있습니다. 문제는 당신의 불량 /usr/local/bin/cygz.dll (권장)을 삭제 하나 잘못된 /usr/local/bin/cygz.dll

또는 PATH 당신에게

$ export PATH=/usr/bin:/usr/local/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS 

설명 수정 : $PATH 전에 창에

라이브러리 검색 경로가있다 .합니다. 그래서 /bin에있을 때 오른쪽 cygz.dll이 발견됩니다. 그렇지 않으면 경로에서 깨진 경로가 먼저 발견됩니다.

+0

감사합니다./usr/local/bin : cygmhash-2.dll, cygmcrypt-4.dll, cygz.dll, cygwin1.dll에 고아 (?) dll이 있습니다. 이것들이 제거되었을 때, 프로그램은/bin/myprogram /에 불만없이 컴파일되었습니다. –

관련 문제