2012-05-21 1 views
2

저는 Cyclone 프로그래밍 언어 용 소스 컴파일러를 빌드하려고합니다. GCC 4.6.3을 기본으로 32 비트 Ubuntu 12.04를 실행 중입니다.GCC 다운 그레이드 문제

하지만 make는 부트 스트랩 유틸리티에서 충돌로 인해 실패합니다. 이 문제를 해결하려면 이전 GCC 버전을 설치하려고합니다.

나는 /etc/apt/sources.list를 패치했고 apt-get을 사용하여 gcc-3.3과 g ++ - 3.3을 설치했다.

$ export CC=gcc-3.3 
$ export CXX=g++-3.3 
$ ./configure 
checking build system type... i686-pc-linux-gnu 
checking host system type... i686-pc-linux-gnu 
checking target system type... i686-pc-linux-gnu 
checking for gcc... gcc-3.3 
checking for C compiler default output file name... configure: error: C compiler cannot create executables 
See `config.log' for more details. 

그리고 config.log 쇼 :하지만 스크립트가 GCC 3.3 사용을 강요 할 때 실패 구성 LD의

... 
/usr/bin/ld: cannot find crt1.o: No such file or directory 
/usr/bin/ld: cannot find crti.o: No such file or directory 
/usr/bin/ld: cannot find -lgcc_s 
... 

버전 2.22

답변

1

apt-file search crt1.o 것은 패키지가이 파일을 포함하는 방법을 보여줍니다 . 아무것도 인쇄하지 않으면 apt-file update을 한 번 실행하십시오.

2

나는이 같은 문제도 가지고있다. libc6-dev 패키지는 crt1.o 파일을 제공하지만 gcc의 비표준 디렉토리에 설치됩니다. 동일한 호스트에서 32 비트 및 64 비트 프로그램을 지원할 수 있습니다. 미셸이 언급 한 것처럼 =는/usr/lib 디렉토리/I386-리눅스 GNU이

0

, 당신은을 얻기 위해이 작업을 수행 할 수 있습니다

수출 LIBRARY_PATH :

이 문제를 해결하려면, 나는 다음과 같은 환경 변수 설정을했습니다 오래된 GCC는 부트 스트랩하려면 : crt1.o 파일이 시스템에 whereever에 대한

export LIBRARY_PATH=/usr/lib/i386-linux-gnu 

을 - 광산에, 그것은 /usr/lib32에 있습니다. 당신이 작업 GCC를 구축 한 후

그런 다음, 당신은 심볼릭 링크 (또는 복사) crt1.o, crti.ocrtn.o을 새로 구축 된 컴파일러에 대한 ${prefix}/lib/gcc/... 디렉토리에, 당신은 때 LIBRARY_PATH을 설정할 필요가 없습니다 수 있습니다 그걸 써. crtstart.o 파일이나 그 파일을 찾으십시오. 그러면 심볼릭 링크를 넣을 수있는 올바른 디렉토리입니다.