Github avatar

GyeongSu Han's Github Pages

GCC 4.7.3 (Ubuntu 14.04.4 LTS)

Apr 19, 2016 · Server

http://ftp.kaist.ac.kr/gnu/gnu/gcc/gcc-4.7.3/에서 압축파일을 받는다.

압축을 풀고

root@ubuntu:/usr/local/src/gcc-4.7.3# ./configure --prefix="원하는 디렉토리"

명령을 사용한다.

make를 실행한다.

root@ubuntu:/usr/local/src/gcc-4.7.3# make
 ...
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
compilation terminated.
make[5]: *** [_muldi3.o] Error 1
make[5]: Leaving directory `/usr/local/src/gcc-4.7.3/x86_64-unknown-linux-gnu/32/libgcc'
make[4]: *** [multi-do] Error 1
make[4]: Leaving directory `/usr/local/src/gcc-4.7.3/x86_64-unknown-linux-gnu/libgcc'
make[3]: *** [all-multi] Error 2
make[3]: Leaving directory `/usr/local/src/gcc-4.7.3/x86_64-unknown-linux-gnu/libgcc'
make[2]: *** [all-stage1-target-libgcc] Error 2
make[2]: Leaving directory `/usr/local/src/gcc-4.7.3'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/usr/local/src/gcc-4.7.3'
make: *** [all] Error 2

이러한 에러가 나올 경우, apt-get install libc6-dev-i386 를 사용한다.

make를 다시 실행한다.

root@ubuntu:/usr/local/src/gcc-4.7.3# make
 ...
/usr/bin/ld: cannot find crti.o: No such file or directory
collect2: error: ld returned 1 exit status
make[5]: *** [libgcc_s.so] Error 1
make[5]: Leaving directory `/usr/local/src/gcc-4.7.3/x86_64-unknown-linux-gnu/32/libgcc'
make[4]: *** [multi-do] Error 1
make[4]: Leaving directory `/usr/local/src/gcc-4.7.3/x86_64-unknown-linux-gnu/libgcc'
make[3]: *** [all-multi] Error 2
make[3]: Leaving directory `/usr/local/src/gcc-4.7.3/x86_64-unknown-linux-gnu/libgcc'
make[2]: *** [all-stage1-target-libgcc] Error 2
make[2]: Leaving directory `/usr/local/src/gcc-4.7.3'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/usr/local/src/gcc-4.7.3'
make: *** [all] Error 2

이 에러가 나올 경우

LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH
export LIBRARY_PATH

명령을 사용하여 해결하였지만, 다른 에러가 나와 진행되지 않았다.

그래서 ./configure --disable-multilib 이 옵션을 추가하여 다시 makefile을 만든 후,

unset LIBRARY_PATH
./configure -v
make

를 수행하였더니 컴파일이 완료되었다. 안되는 이유에 대해서는 모르겠다.