GCC
- GNU Compiler Collection
- GNU 프로젝트의 오픈 소스 컴파일러 컬렉션
- 1987년 리처드 스톨만 개발
- UNIX/Linux 표준 컴파일러
GCC command structure
gcc "파일명"
- Options:
- o: 지정된 이름으로 실행파일 생성 (지정 안 할 시, a.out으로 생성)
- c: 오브젝트 파일(.o) 생성
- l: 같이 링크할 라이브러리 지정
- v: 컴파일 수행 메세지 표시
- s: 어셈블리* 파일 생성
- g: 디버깅 옵션, gdb에서 제공하는 정보 삽입
*어셈블리: 기기가 이해할 수 있는 컴퓨터 언어
Make
- GNU 프로젝트의 빌드 자동화 소프트웨어
- UNIX 계열 운영 체제를 대상으로 개발
- 여러 파이를의 각 의존성과각 파일에 대한 명령을 정의
- Make를 위한 ㅇ특정 형식 파일인 Makefile 존재
- Makefile을 Make가 해석하여 프로그램 빌드를 자동화 해줌
- Source Code의 일부만 변경된 경우, 변경된 부분만 다시 컴파일하여 링크함
Makefile basic structure
Make macro
- Macro:
- 변수 이름들은 $사용
- $(변수): 변수
- $@: 현재 목표 파일 (target)
- $<: 현재 목표 파일보다 더 최근에 갱신된 파일