강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
GNU Compiler Collection 2편
조회 : 6,326  




GNU Compiler Collection 2






ㅇ 제작 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 개발팀


SULINUX 홈페이지 : www.sulinux.net

ㅇ 리눅스포털 홈페이지 : www.superuser.co.kr

1. GCC 빌드


1) 소프트웨어 요구사항 확인-


GCC 빌드에 필요한 유틸리티나 라이브러리가 설치되어있는지


GCC 빌드시 필요한 유틸리티나 라이브러리가 요구하는 버전에 부합되는지


충분한 디스크 공간이 확보되어 있는지


빌드하는 컴파일러를 세컨 컴파일러로 사용할 것인지









2) 시스템 설치 준비


GCC 빌드시 빌드 가능한 일반 사용자 권한으로 설치시는 시스템 관리자로 설치

- 메인 컴파일로 사용할 경우 /usr 설치

- 세컨 컴파일러로 사용할 경우 /usr/local에 설치


최소 1GB이상의 작업공간에서 빌드

- GCC가 지원하는 모든 언어, 다국어 지원, 공유라이브러리를 전체

설치하려면 약220MB의 저장공간 필요


- 작업 단계별 소요 되는 디스크 공간

source file : 200MB

configure : 추가적으로 3MB 사용

make bootstrap : 추가적으로 560MB make bootstrap-lean : 추가적으로 389MB

make check : 추가적으로 580MB make check : 추가적으로 410MB

make install : 추가적으로 220MB make install : 추가적으로 210MB



  1. 소스코드 다운로드

소스코드 다운 받는곳

- http://www.gnu.org

- http://directory.fsf.org/GNU/gcc.html

- http://gcc.gnu.org/


필요한 파일

- gcc-3.3.tar.gz

- gcc-testsuite-3.3.tar.gz

- binutils-2.12.1.tar.bz2

- dejagnu-1.4.3.tar.gz


특정 컴파일러만 설치할경우

- 필수 : gcc-core-3.3.3.tar.gz

- 선택 : gcc-ada-3.3.3.tar.gz

gcc-g++-3.3.3.tar.gz

gcc-g77-3.3.3.tar.gz

gcc-java-3.3.3.tar.gz

gcc-objc-3.3.3.tar.gz


  1. 소스코드 구성

    디렉토리 구조

/home/locli/src

/home/locli/src/gcc // 소스 디렉토리

/home/locli/src/gccbuild // 빌드디렉토리






특수한 상항에서의 GCC 빌드


빌드 하고하는 컴파일러의 종류에 따라, 컴파일러가 어떤 종류

시스템에서 실행되고, 어떤 종류의 시스템에서 실행될 코드를

생성할지 좀더 자세하게 정해줘야 할 경우


--build[=system] : GCC가 빌드되는 시스템

--host[=system] : 만들어진 GCC가 실행될 시스템

--target[=system] : 어떤 시스템에서 동작할 코드를 생성



빌드, 호스트, 타겟 시스템이 같을 필요가 없다.

- 컴파일러가 설치되어있지 않은 시스템에 설치

- 다른 CPU를 가진 시스템의 실행코드를 생


컴파일러의 종류

- 네이티브 컴파일러

ex) 빌드->x86 호스트->x86 타겟->x86

- 크로스 컴파일러

ex) 빌드->SH 호스트->SH 타겟->ARM

- 크로스백 컴파일러

ex) 빌드->x86 호스트->MIPS 타겟->x86

- 크로스드 네이티브 컴파일러

ex) 빌드->PPC 호스트->SPARC 타겟->SPARC

- 캐나디안

ex) 빌드->ARM 호스트->SH 타겟->MIPS


  1. 빌드테스트

    테스트를 해야하는 이유

- 컴파일러를 이용하여 앞으로 사용할 소프트웨어 컴파일


테스트 프로그램을 돌리기 전 확인사항

- Tcl(Tool Command Language) 설치 유무 확인

- Expect 설치 유무 확인

- DejaGNU 설치 유무 확인

- 각 프로그램의 PATH 설정 확인

DejaGNU 설치후 환경변수 설정

$ export DEJAGNULIBS=/usr/local/share/dejagnu

$ export TCL_LIBRARY=/usr/lib/tcl

테스트 프로그램 수행

테스트 후 생성되는 결과 파일

- *.log : 자세한 테스트 결과

- *.sum : 테스트에 대한 요약

GCC 테스트 프로그램의 결과 코드



  1. 컴파일러 설치











앞에서 configure 스크립트를 실행할 때 세부설정 및 설치 경로가 정해짐


su 는 사용자를 변경할때 사용되는명령

(쓰기 권한이 없는 곳에 컴파일러를 설치할 경우 필요)


ldconfig 는 동적 링커의 캐시파일을 갱신

(새롭게 만들어진 공유라이브러리를 사용가능하도록 해줌)



[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1450


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
이재석
본명 : 이재석
e-mail : locli앳superuser.co.kr
소속 : (주)수퍼유저코리아