[필수 유틸리티] Chapter 03. 컴파일과 링킹
Chapter 03. 컴파일과 링킹
Section 01. 컴파일의 의미
- 사람이 작성한 고급 언어를 기계 언어로 번역하는 과정입니다.
Section 02. 알아두면 정말 유용한 C 소스 컴파일 과정
- 컴파일 과정을 이해 함으로써 컴파일 시 발생하는 문제 해결 능력을 기를 수 있습니다.
- gcc 는 호출을 하고 실제 일은 전처리기(cpp0), 컴파일러(cc1), 어셈블러(as), 링커(ld, collect2) 바이너리들이 수행합니다.
- 전처리기 (.c –> .i)
- 컴파일러 (.i –> .s)
- 어셈블러 (.s –> .o)
- 링크 (.o –> 실행파일)
Section 03. gcc를 사용해서 원하는 컴파일 하기
- 전처리기, 컴파일러, 어셈블러, 링커의 여러 옵션을 알아봅니다.
Section 04. 라이브러리를 만들어 보자.
- 정적 라이브러리 만들기
- 동적 라이브러리 만들기
Section 05. 바이너리 유틸리티 사용
- objcopy, objdump 등 바이너리 유틸리티를 알아봅니다.
Section 06. 인라인 어셈블리의 사용
- __asm__volitile (blah,…) 간단한 어셈블리 문법을 알아봅니다.