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 라이브러리로 링크하기 때문에

링크에러가 발생할 수 있다.

+ Recent posts