강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

GNU Compiler Collection 2편

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문



GNU Compiler Collection 2






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


SULINUX 홈페이지 : www.sulinux.net

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

1. GCC 빌드


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


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


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


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


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



20070404_TD_GNU%20Compiler%20Collection%20%232_html_m46268685.gif






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

20070404_TD_GNU%20Compiler%20Collection%20%232_html_765c3ed1.gif

  1. 소스코드 구성

    디렉토리 구조

/home/locli/src

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

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

20070404_TD_GNU%20Compiler%20Collection%20%232_html_65e50753.gif





특수한 상항에서의 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 테스트 프로그램의 결과 코드

20070404_TD_GNU%20Compiler%20Collection%20%232_html_4540814c.gif



컴파일러 설치

20070404_TD_GNU%20Compiler%20Collection%20%232_html_54eb0d98.gif










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


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

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


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

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


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  119 명