개발 🛠💻/C++, Modern C++

GCC / G++ 차이점

승지 T-Story 2023. 12. 5. 21:29

GCC (GNU Compiler Collection & GNU C Complier)

본래 C언어용 컴파일러로 시작하여, GNU C Compiler의 약자였으나, 2.9 버전에 이르러 C언어 뿐 아니라
오브젝티브 C(Objective C), 파스칼, 에이다 등과 같은 언어를 지원하게 되면서 GNU Compiler Comllection으로
이름이 변경되었다. Linux, 윈도우 등 수많은 운영체제를 지원 가능하여 높은 호환성을 가지고 있고, 
자동 레지스터 할당, 반복적인 코드 제거, 상수 곱셈 최적화 등 많은 최적화를 수행하는 컴파일러이다. 
 

G++ (GNU C++ Compiler)

C++언어용 컴파일러이며, GNU C++ Compiler의 약자
 

GCC VS G++

GCC G++ 
 .C파일과 .CPP 파일을 각각 C언어와 C++ 언어로 컴파일.C파일과 .CPP 파일 모두 C++ 언어로 컴파일 
 C라이브러리와 링크됨C++ 라이브러리에 링크됨 
 미리 정의된 매크로가 거의 없음몇 가지 추가 매크로 존재 

 

결론

GCC

.c 파일과 .cpp 파일을 컴파일시 각각 C언어와 C++언어로서 컴파일 하며, 오로지 C라이브러리와 링크된다. 
 

G++

.c 파일과 .cpp 파일을 컴파일시 모두 C++언어로서 C++ 라이브러리와 링크 된다.
 
 
===> C++언어로 작성된 .cpp 파일을 GCC로 컴파일시 GCC가 .cpp 파일을 컴파일한 후 C 라이브러리로 링크하기 때문에
링크에러가 발생할 수 있다.
 
출처 : https://hsunnystory.tistory.com/112