Top

GCC 완전정복

  • 원서명The Definitive Guide to GCC (ISBN 1590591097)
  • 지은이Kurt Wall, William von Hagen
  • 옮긴이김경현
  • ISBN : 8989975700
  • 30,000원
  • 2006년 06월 27일 펴냄 (절판)
  • 페이퍼백 | 528쪽 | 190*255mm

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

미처 알지 못했던 GCC의 강력한 기능, 이제 그 판도라의 상자가 열린다.

GCC라고 일컬어지는 GNU C 컴파일러는 가장 인기 있는 C 컴파일러이다. GCC는 자유 소프트웨어이고 효율적인 코드를 생성하며 수많은 플랫폼을 지원하기 때문에, 상용 프로그램과 오픈소스 프로젝트, 머신 간의 코드 포팅, 크로스 컴파일에 가장 이상적인 컴파일러이다. 현재 C 언어로 응용프로그램을 개발하고 있다면, 지금 바로 GCC를 사용해보라. GCC에는 코드를 개선해줄 수 있는 기능들이 많이 있다. GCC에 관한 모든 것이 『GCC 완전정복』에 모두 담겨있다.


[ 이 책의 특징 ]

『GCC 완전정복』은 GNU 컴파일러 컬렉션(GNU Compiler Collection) 버전 3.x인 GCC 3.x를 어떻게 빌드하고 설치하며 커스터마이징하고 사용하며 문제해결을 하는지에 관한 책이다. GCC는 대부분의 주요 하드웨어와 운영체제 플랫폼에서 사용할 수 있으며, 사용자들이 가장 선호하는 컴파일러이다. GCC는 일반적인 목적의 컴파일러로서 높은 수준의 빠른 코드를 만들어내며, 그 디자인 덕분에 다른 아키텍처에 쉽게 이식할 수 있어서 인기가 더욱 높다. GNU Emacs, 리눅스 운영체제 시스템, 아파치 웹 서버, Sendmail 메일 서버, BIND DNS 서버와 함께 GCC는 자유 소프트웨어 세계의 걸작품 중 하나이다.


[ 이 책의 구성 ]

1장과 2장에서는 유닉스나 리눅스 시스템, 윈도우 환경에서 GCC를 설치하는 내용에 대해 살펴본다. 3장부터 5장은 일반적인 GCC 사용법에 관해 다루고 있기 때문에, GCC를 처음 사용하거나 어느 정도 사용해본 사람들에게 알맞은 내용을 담고 있다. 이 세 장만 읽어두면 GCC를 사용하는 웬만한 사람들보다 GCC를 더 잘 쓸 수 있게 될 것이다. 6장부터 8장까지는 초보자들을 혼란스럽게 만들 수 있는 GCC 기능에 관한 고급 주제를 다루고 있기 때문에 고급 사용자들은 이 부분에서 많은 내용을 얻을 수 있을 것이다. GCC를 설치하거나 사용하는 데 어려움을 겪고 있다면 9장과 10장을 보길 바란다. 11장은 GCC의 모든 명령 행 옵션과 인자에 대한 빠른 참고로 쓸 수 있다. 프로그래머, 특히 GCC와 명령 행 컴파일 환경을 처음 접하는 프로그래머인 경우에는 3장부터 10장까지를 읽기 바란다. 12장에서는 GCC 정보를 볼 수 있는 곳들을 나열해 놓았다. 부록 A와 부록 B는 GCC의 모든 명령 행 옵션과 인자, 아키텍처에 관련된 옵션들에 대한 완벽한 참고 정보를 제공한다.


[ 이 책의 대상 ]

『GCC 완전정복』은 GCC를 사용하는 평범한 사용자들을 위한 책이다. 독자가 가끔 프로그램을 컴파일하는 사람이거나, GCC를 자주 사용하지만 GCC가 어떻게 동작하는지 자세하게 이해하지 못하고 있는 사용자이거나, GCC의 모든 기능을 사용하려는 프로그래머이든 간에 상관없이 당장 유용하게 사용할 수 있는 정보를 찾을 수 있을 것이다. 리눅스와 인텔 x86 CPU가 매우 인기가 많기 때문에 대부분의 사람들이 인텔 x86에서 동작하는 리눅스 운영체제의 여러 버전 중 하나를 사용한다고 가정했다. 그래도 GCC는 운영체제와 CPU 기능에 거의 독립적이기 때문에, 대부분의 내용은 리눅스나 인텔 CPU에 관련된 것이 아니라 GCC에 관련된 것이다.


[ 저자 서문 ]

지금 이 책을 보고 있다면, 아마도 독자 여러분은 굉장히 강력한 컴파일러인 GCC의 모든 것을 아는 데 관심이 많을 것입니다. 그렇지만 사지 않아도 무료로 얻을 수 있는 컴파일러에 관한 책을 왜 돈을 주고 사야 하는지 의아해할지도 모르겠습니다. 대답은 아주 간단합니다. GCC가 매우 인기가 많고 아주 좋은 C 컴파일러이지만, 비행기 계기판에 있는 버튼 숫자보다도 더 많은 옵션이 있기 때문입니다. GCC에 가격표가 붙어 있지 않다는 것만 생각하지 말고, GCC에 있는 수많은 기능을 생각해 보길 바랍니다.

이 책에서는 GNU Compiler Collection(자바, Objective C, Ada95 등의 언어를 위한 컴파일러 묶음을 의미하는 GCC의 공식적인 이름입니다) 전체가 아니라 “고전적인” GCC인 GNU C Compiler에 대해 살펴볼 것입니다. GCC는 자유 소프트웨어 재단에서 운영하는 프로젝트 중 최고이며 가장 오래된 오픈소스 프로젝트 중 하나입니다. GCC는 다른 어떤 C 컴파일러보다도 훨씬 많은 플랫폼을 지원하고, 생성되는 바이너리와 오브젝트 파일을 조작할 수 있게 해주는 수많은 명령 행 옵션을 제공합니다. 사실 옵션 몇 개만으로도 GCC에서 지원하는 다른 플랫폼에서 동작하는 코드를 컴파일할 수도 있고요.

저는 1980년대 후반부터 계속 GCC를 사용해왔는데, 새로운 버전이 나올 때마다 새로운 기능들이 계속 추가되었습니다. 최신 버전의 GCC에 있는 기능들을 찾아내고 쓰는 것도 중요하겠지만, 최적화와 코드 프로파일링, 테스트 커버리지 분석 같은 일을 완벽하게 익히는 것이 훨씬 더 중요하다고 생각합니다. 이 책에서는 GCC와 gprof, gcov, libtool, autoconf 같은 도구를 우리가 일하는 데 어떻게 사용하며, 어떻게 하면 더 잘 사용할 수 있는가에 대해 이야기할 것입니다. 이 책의 코드와 출력 예제에서는 우리 일에 어떻게 적용할 수 있는지를 바로 알려줍니다.

즐거운 컴파일이 되길 바랍니다!

저자/역자 소개

[ 저자 소개 ]

Kurt Wall

『Red Hat 리눅스 Networking and System Administration, Second Edition』과 『Access 2002 Development Unleashed, 유닉스 Unleashed, Fourth Edition』의 저자이며 전문적인 기술 저자로 활동하고 있는 Kurt는 다양한 일을 한 경험이 있다. 현재는 펜실베니아주 피치버그에 있는 TimeSys 사에서 일하고 있다. Timesys에서 그의 주된 업무는 Content Group을 관리하는 것이다. TimeSys의 임베디드 리눅스 운영체제와 개발 도구에 대한 기술 문서와 사용자 문서를 만드는 것을 감독하는 일 외에도 TimeSys의 임베디드 리눅스 제품에 대해 많은 문서를 쓰고 있다. 지금까지 리눅스 시스템 관리와 프로그래밍에 대해서 15권의 책을 썼다.


William von Hagen

『Hacking the TiVo and 리눅스 Filesystems』의 저자이자 『Mac OS X Power User’s Guide』의 공동저자인 Bill von Hagen은 컴퓨터 과학과 영어 작문, 예술사에 대해 학위를 가지고 있다. 그는 1982년부터 유닉스 시스템에 대한 일을 했는데, 지금까지 시스템 관리자, 작가, 시스템 프로그래머, 개발 관리자, 드러머, 운영 관리자를 했었고 현재는 제품 관리자로 일하고 있다. Bill은 『Hacking the Tivo』와 『리눅스 Filesystems, Installing Red Hat 리눅스 7』, 『SGML for Dummies』를 썼고, Red Hat 7 Unleashed에 기여를 했으며, Brian Proffitt와 함께 『Mac OS X Power User’s Guide』의 공동저자이다. 또 그는 CMP Media와 리눅스 Planet, Corel의 광범위한 온라인 문서를 쓰기도 했다.


[ 저자 서문 ]

지금 이 책을 보고 있다면, 아마도 독자 여러분은 굉장히 강력한 컴파일러인 GCC의 모든 것을 아는 데 관심이 많을 것입니다. 그렇지만 컴파일러는 무료로 얻을 수 있는데 책을 왜 돈 주고 사야 하는지 의아해할지도 모르겠습니다. 대답은 아주 간단합니다. GCC가 매우 인기가 많고 아주 좋은 C 컴파일러이지만, 비행기 계기판에 있는 버튼 숫자보다도 더 많은 옵션이 있기 때문입니다. GCC에 가격표가 붙어 있지 않다는 것만 생각하지 말고, GCC에 있는 수많은 기능을 생각해 보길 바랍니다.
이 책에서는 GNU 컴파일러 컬렉션(자바, Objective C, Ada95 등의 언어를 위한 컴파일러 묶음을 의미하는 GCC의 공식 명칭입니다) 전체가 아니라 “고전적인” GCC인 GNU C 컴파일러에 대해 살펴볼 것입니다. GCC는 자유 소프트웨어 재단에서 운영하는 프로젝트 중 최고이며 가장 오래된 오픈소스 프로젝트 중 하나입니다. GCC는 다른 어떤 C 컴파일러보다도 훨씬 많은 플랫폼을 지원하고, 생성되는 바이너리와 오브젝트 파일을 조작할 수 있게 해주는 수많은 명령 행 옵션을 제공합니다. 사실 옵션 몇 개만으로도 GCC에서 지원하는 다른 플랫폼에서 동작하는 코드를 컴파일할 수도 있고요.
저는 1980년대 후반부터 계속 GCC를 사용해왔는데, 새 버전이 나올 때마다 새로운 기능들이 계속 추가되었습니다. 최신 버전의 GCC에 있는 기능들을 찾아내고 쓰는 것도 중요하겠지만, 최적화와 코드 프로파일링, 테스트 커버리지 분석 같은 일을 완벽하게 익히는 것이 훨씬 더 중요하다고 생각합니다. 이 책에서는 GCC와 gprof, gcov, libtool, autoconf 같은 도구를 실무에서 어떻게 사용하며, 어떻게 하면 더 잘 사용할 수 있는가에 대해 이야기할 것입니다. 이 책의 코드와 출력 예제에서는 우리 일에 어떻게 적용할 수 있는지를 바로 알려줍니다.

즐거운 컴파일이 되길 바랍니다!

- Kurt & Bill


[ 역자 소개 ]

김경현

현재 서울대학교 컴퓨터공학부에 재학중이며, 2004년부터 2년간 MDS 테크놀로지(주)에서 국산 RTOS인 Velos를 개발했다.


[ 역자 서문 ]

이 책은 제목 그대로 GCC에 관련된 내용을 담고 있습니다. GCC는 저자가 책의 처음에 설명하는 대로 세상에서 가장 인기가 있고, 많이 쓰이고, 많은 플랫폼에서 동작하는 코드를 만들 수 있는 컴파일러입니다. GCC가 지원하는 수많은 플랫폼과 다양한 옵션들에 대한 내용을 이해하게 되면 컴파일러가 지원해주는 여러 가지 좋은 기능을 이용해서 개발을 좀더 편하게 하실 수 있을 것입니다.
책에서는 조금은 지난 버전의 GCC를 이야기 하고 있지만 GCC는 대부분의 경우 하위 호환성을 유지해주고 있고 커다란 줄기는 바뀌지 않으니, 이 책의 거의 모든 내용을 새 버전의 GCC에서도 사용할 수 있으실 것입니다.
책에 binutils에 대한 내용이 없는 것이 아쉽기는 합니다. binutils에 관한 내용도 인터넷이나 책을 통해 꼭 읽어보시길 바랍니다.
너무나 많은 옵션 때문에 이 책을 번역하는 일은 오역과 오탈자와의 싸움이었습니다. 게다가 원서오류도 적잖이 발견되어서 원서보다 나은 번역서를 만들고자 노력했습니다만 아직은 미흡한 점이 많을 것입니다. 혹 잘못된 내용상의 오류나 있으니 혹시 오탈자를 발견하시면 에이콘출판사 홈페이지에 올려주시거나 acornpub@acornpub.co.kr로 보내주시기 바라며 정오표는 에이콘출판사 홈페이지에서 찾아보실 수 있습니다. 마지막으로 긴 시간을 기다려 주신 출판사 분들께 감사하고 죄송하다는 말씀을 드리고 싶습니다.

- 김경현

목차

목차
  • 1장 GCC 빌드
    • GCC를 소스에서부터 빌드해야 하는 이유
    • GCC 3의 새로운 기능
  • 2장 도스와 윈도우 환경에서 GCC 설치하기
    • 시그윈 설치
    • DJGPP 설치
  • 3장 기본적인 GCC 사용법
    • 일반적인 옵션
    • GCC의 출력 조절
    • C 변종 컴파일
    • C++와 GCC
    • 전처리기 조절
    • 디렉토리 검색 경로 수정
    • 링커 조작
    • 어셈블러에 옵션 전달
    • 경고 메시지 켜고 끄기
    • 디버깅 정보 추가
  • 4장 GCC 고급 사용법
    • 환경 변수를 사용한 GCC 커스터마이즈
    • 스펙 파일과 스펙 문자열을 이용한 GCC 커스터마이즈
    • C와 확장기능
  • 5장 GCC를 이용한 코드 최적화
    • 컴파일러의 최적화 이론에 대한 이야기
    • 프로세서에 관계없는 일반적인 최적화
    • 프로세서와 관련된 최적화
  • 6장 GCC를 이용한 코드 분석
    • GCC와 gcov를 이용한 커버리지 테스트
  • 7장 autoconf와 automake
    • 유닉스 소프트웨어 설정, autoconf, automake
    • autoconf와 automake 설치와 설정
    • autoconf, automake를 이용한 소프트웨어 설정
    • configure 스크립트 실행
  • 8장 Libtool
    • 라이브러리 소개
    • Libtool이란?
    • Libtool을 받아 사용하기
    • Libtool 사용하기
    • Libtool 문제 해결
    • Libtool에 대한 보다 자세한 정보
  • 9장 GCC 사용시 발생하는 문제 해결
    • 알려진 버그와 잘못된 기능 해결
    • 일반적인 문제 해결
    • 빌드, 설치 문제 해결
  • 10장 GCC 온라인 도움말
    • GNU Info란?
    • 시작하기
    • GNU Info 초보자 가이드
    • 멍청한 Info 사용법
  • 11장 GCC 명령 행 옵션
    • GCC 옵션 목록
    • GCC 어셈블러 옵션 목록
    • GCC 링커 옵션 목록
    • GCC 전처리기 옵션 목록
    • GCC 옵션 레퍼런스
  • 12장 GCC에 대한 추가 정보
    • GCC에 관한 유즈넷 자원
    • GCC 메일링 리스트
  • 인터넷에 있는 GCC 정보
    • GCC 참고문헌와 참고자료
  • 부록 A Glibc 빌드와 설치
    • Glibc에는 무엇이 들어있을까?
    • Glibc를 대체할 수 있는 것
    • Glibc를 소스에서부터 빌드해야 하는 이유
    • 빌드 과정 미리 보기
    • 추천 Glibc 빌드 도구
    • 소스 코드 다운로드와 설치
    • 소스 코드 설정
    • Glic 컴파일
    • 빌드 테스트
    • Glibc 설치
    • Glibc에 대한 추가 정보
  • 부록 B 머신과 프로세서에 관련된 GCC 옵션
    • Alpha 옵션
    • Alpah/VMS 옵션
    • AMD x86-64 옵션
    • AMD29K 옵션
    • ARC 옵션
    • ARM 옵션
    • AVR 옵션
    • Clipper 옵션
    • Convex 옵션
    • CRIS 옵션
    • D30V 옵션
    • H8/300 옵션
    • HP/PA (PA/RISC) 옵션
    • i386과 AMD x86-64 옵션
    • IA-64 옵션
    • Intel 960 옵션
    • M32R 옵션
    • M680x0 옵션
    • M68hc1x 옵션
    • M88K 옵션
    • MCore 옵션
    • MIPS 옵션
    • MMIX 옵션
    • MN10200 옵션
    • MN10300 옵션
    • NS32K 옵션
    • PDP-11 옵션
    • PowerPC (PPC) 옵션
    • RS/6000 옵션
    • RT 옵션
    • S/390과 zSeries 옵션
    • SH 옵션
    • SPARC 옵션
    • System V 옵션
    • TMS320C3x/C4x 옵션
    • V850 옵션
    • VAX 옵션
    • Xstormy16 옵션

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

[ p10 2행 ]
--prefix=/usr/loca/gcc33 \ → --prefix=/usr/local/gcc33

[ p29 아래에서 15행 ]
의도적인 초기화 → 지명된 초기화

[ p143 팁 박스 2행 ]
-fno-gcse-flag 플래그를 → -fno-gcse 플래그를