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 라이브러리로 링크하기 때문에
링크에러가 발생할 수 있다.
'Programming > C , C++' 카테고리의 다른 글
[C, C++] Run-Time Check Failure #2 -S 증상 원인 (0) | 2019.10.15 |
---|---|
wrong ELF class : ELFCLASS32 / ELFCLASS64 (0) | 2019.01.10 |
[C, C++] error -too few arguments to function (0) | 2018.12.06 |
정적 라이브러리(lib) vs 동적 라이브러리(dll) (0) | 2018.11.22 |