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 |