2013-10-30 1 views
10

매우 기본적인 C++ 프로그램을 컴파일하려고하면 다음 오류가 발생합니다. 이것은 G를 사용하고Cygwin 64 G ++ -fuse-linker-plugin 오류

int main() { 
     return 0; 
} 

$ g++ -fuse-linker-plugin test.cpp 
g++: fatal error: -fuse-linker-plugin, but cyglto_plugin.dll not found 
compilation terminated. 

코드 ++ 똑바로 신선한 Cygwin에서 설치에서 설치.

내가 거기에 파일을 검색하는 경우 이 존재에 위치하고 수행합니다

/usr/libexec/gcc/x86_64-pc-cygwin/4.8.2/cyglto_plugin.dll 

가 어떻게 올바르게에서 Cygwin에서 64 보이게합니까?

답변

8

설치시 gcc-g ++ 패키지 만 확인한 것 같습니다. 버전은 4.8.1-3이지만 다음 페이지에는 많은 의존성이 설치되어 있음을 볼 수 있습니다 (예 : libgcc와 4.8.2 버전).

4.8.1과 4.8.2의 혼합이 문제인 것처럼 보입니다.

설치 프로그램에서 모든 종속성을 편집기로 복사하고 4.8.2를 검색하여 문제가있는 패키지를 찾은 다음 설치 프로그램으로 돌아가서 4.8.1-3이 설치 될 때까지 해당 패키지를 클릭하십시오.

해당 패키지의 최신 버전을 설치하고 있지 않은지 다시 확인하십시오.

+0

그것은 내 문제를 해결. 건배!! 패키지를 모두 업그레이드하기 전에 모든 패키지가 업데이트 될 때까지 기다려야합니다. –

0

위의 대답은 저에게 효과적 이었지만 설치 관리자가 자동으로 패키지를 4.8.2로 다시 업그레이드했습니다. 그래서 처음에는 이것이 효과가 없다고 생각했습니다. 그것은 실제로했다. 설치 프로그램을 사용하여 나중에 패키지를 추가 할 때 다시 4.8.2로 업그레이드하고 문제를 일으킬 수 있음을 알고 있어야합니다.

-fno-use-linker-plugin으로 LTO를 끄는 옵션이 있지만 CPAN이 g ++을 시작하기 때문에 나에게 아무런 도움이되지 않습니다. 해결 방법으로 사용될 수 있습니다.

(나는이 답변의 대부분 아니라는 것을 알고,하지만 난 언급 할 수 없습니다) 폴더는/usr/libexec 디렉토리/GCC를 확인, GCC의

+0

"패키지 선택"창에서 모든 패키지를 자동으로 업그레이드하지 않으려면 "Curr"대신 "Keep"을 클릭하십시오. – xnor

1

두 버전 proble을 일으키는/x86_64에-PC-Cygwin에서/gcc에는 두 가지 버전이 있습니다. 제거 문제를 해결하십시오.

2

최근에 apt-cyg를 사용하여 g ++ 4.9.2가 설치되었지만 gcc-core 4.8.2가 유지되었습니다.

에 의해 해결 : 정확한 문제였다

apt-cyg remove gcc-g++ 
    apt-cyg remove gcc-core 
    apt-cyg install gcc-g++