본문 바로가기
프로그래밍 언어/Cmake

GCC

by 규봉봉이 2020. 5. 12.

gcc 컴파일러

엄밀히 말하면 gcc는 컴파일러가 아님

전처리기와 C컴파일러, 어셈블러, 링커를 각각 호출해주는 역할을 담당하는 컴파일러 드라이버(compiler driver)

 

전처리기 cpp0/ccl -E

C 컴파일러 cc1

어셈블러 as

링커 collect2 --> ld

 

C 컴파일러 위치 /usr/libexec/gcc/i386-redhat-linux/4.12/cc1

(/usr/lib/gcc/i486-linux-gnu/4.12/cc1)

 

C 컴파일러 위치 /usr/libexec/gcc/i386-redhat-linux/4.12

cc1 : C 컴파일러, -E 옵션을 붙이면 C 전처리기로 동작

cc1plus : C++ 컴파일러, -E 옵션을 붙이면 C++ 전처리기로 동작

collect2 : 링커 (내부에서 링커인 ld를 호출해 링크함)

f951 : 포트란 컴파일러

 

/usr/bin

cc : C 컴파일러 드라이버, gcc와 동일

gcc : C 컴파일러 드라이버

c++ : C++ 컴파일러 드라이버, g++와 동일

g++ : C++ 컴파일러 드라이버

gcj : 자바 컴파일러 드라이버

 

like.c c소스 --> (cpp0 또는 cc1 -E 전처리기) --> like.i 전처리기 결과

               --> (cc1 C컴파일러) --> like.s 어셈블리 파일 --> (as 어셈블러)

               --> like.o 오브젝트 파일 --> (ld or collect2 링크) --> like 실행 파일

 

 

'프로그래밍 언어 > Cmake' 카테고리의 다른 글

RPATH를 통해 다른 환경에서 LD_LIBRARY_PATH 안주고 실행하기  (0) 2025.04.25
CMake EXPORT  (0) 2025.04.25
Conan 패키지 매니저: 시작하기  (0) 2023.09.21
cmake  (0) 2023.04.05
Makefile  (0) 2020.05.25