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 같은 도구를 우리가 일하는 데 어떻게 사용하며, 어떻게 하면 더 잘 사용할 수 있는가에 대해 이야기할 것입니다. 이 책의 코드와 출력 예제에서는 우리 일에 어떻게 적용할 수 있는지를 바로 알려줍니다.
즐거운 컴파일이 되길 바랍니다!
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 같은 도구를 우리가 일하는 데 어떻게 사용하며, 어떻게 하면 더 잘 사용할 수 있는가에 대해 이야기할 것입니다. 이 책의 코드와 출력 예제에서는 우리 일에 어떻게 적용할 수 있는지를 바로 알려줍니다.
즐거운 컴파일이 되길 바랍니다!
목차
목차
- 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를 이용한 커버리지 테스트
- 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 참고문헌와 참고자료
- 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 옵션
도서 오류 신고
정오표
[ p10 2행 ]
--prefix=/usr/loca/gcc33 \ → --prefix=/usr/local/gcc33
[ p29 아래에서 15행 ]
의도적인 초기화 → 지명된 초기화
[ p143 팁 박스 2행 ]
-fno-gcse-flag 플래그를 → -fno-gcse 플래그를
--prefix=/usr/loca/gcc33 \ → --prefix=/usr/local/gcc33
[ p29 아래에서 15행 ]
의도적인 초기화 → 지명된 초기화
[ p143 팁 박스 2행 ]
-fno-gcse-flag 플래그를 → -fno-gcse 플래그를