다양한 C / C++ 컴파일러
C / C++ 언어는 고급 언어
이지만, 컴파일의 결과물로 네이티브한 기계어를 생성하므로, 하드웨어나 CPU 명령어에 매우 밀접
합니다.
JAVA 혹은 C# 같은 언어는 성능보다 이식성을 높게 두고 있기 때문에 중간언어를 생성합니다.
번역결과는 기계어 자체를 의미하며, CPU 명령어에 따른 컴파일러가 별도로 존재할 필요가 있습니다.
- X86 명령어를 사용하는 CPU 를 지원하기 위해서는 X86 명령어로 컴파일
- ARM 명령어를 사용하는 CPU 를 지원하기 위해서는 ARM 명령어로 컴파일
- (Fat Binary 라고 불리는 여러 명령어 버전을 하나의 프로그램에 담는 방식도 있습니다)
C / C++ 언어는 UNIX 운영체제에서 출발합니다.
UNIX 운영체제는 굉장히 잘 만들어진 운영체제 이며, 현재 우리가 사용하고 있는 많은 운영체제들은 그 뿌리를 대부분 UNIX 에서 찾을 수 있습니다.
UNIX 호환 운영체제를 흔히 POSIX, Portable Operating System Interface(이식 가능한 운영체제 인터페이스)라 하는데,
Linux, BSD, Mac-OS, Solaris 등이며 Windows 도 POSIX 를 일부 지원합니다.
따라서, POSIX 계열의 운영체제라면 C 언어를 지원할 가능성이 매우 높습니다.
운영체제의 환경을 흔히 플랫폼이라 부르는데, 각 플랫폼에 따라 기술지원이 다르며 이에 따른 C / C++ 의 확장 기능 또한 존재합니다.
많은 운영체제 제작사에서는 해당하는 플랫폼을 위한 개발도구로써 컴파일러들을 제공합니다.
통합 개발 환경(IDE, integrated development environment)
과거, 코드의 크기가 비교적 적은 프로그램들을 작성할 때에는 단순히 텍스트 에디터로도 큰 불편함 없이 작성할 수 있었습니다.
그러나 하나의 응용 프로그램을 작성하기 위한 코드는 날이 갈 수록 방대해져 가고 있으며, 이에 따라 생산성을 높이기 위해 여러 도구의 도움을 받게 되었습니다.
이러한 도구들의 통합한 것이 바로 IDE, 통합개발 환경입니다.
IDE 는 여러분이 코드 전체를 파악하고 있지 않아도, 찾고자 하는 함수등을 빠르게 찾을 수 있도록 도와주거나,
코드에 색깔을 입혀 가독성을 높여주는 기능 등을 제공
합니다.
컴파일러 및 IDE
GCC
GPL(General Public License)에 의거해 배포되는 매우 강력한 GCC 컴파일러 를 선택할 수 있습니다.
GCC 컴파일러는 대부분의 운영체제와 다양한 기계어를 지원합니다.
단, 개발 환경이 Windows 인 경우 Cygwin 등의 프로그램이 추가로 필요할 수 있으며,
기본적으로 콘솔 형태의 컴파일러로써 배포되므로, 통합 개발환경을 원한다면 별도로 준비할 필요가 있습니다.
Visual studio
Windows 환경에서 고를 수 있는 컴파일러 및 개발도구로는 Microsoft Visual Studio 가 있습니다.
Visual Studio 는 상용 프로그램이지만, 개인 사용자는 Community Edition 을 이용할 수 있습니다. C / C++ 를 학습할 때 가장 많이 선택되는 IDE 이기도 합니다.
Xcode
MacOS 를 사용하고 계신다면, App Store 에서 Xcode 를 다운로드 받아 바로 개발을 시작하실 수 있습니다. Apple 제품을 위한 프로그램을 개발 할 경우, 필수적으로 사용되는 IDE 입니다.
LLVM
LLVM 은 중간 코드를 사용하는 Compiler 이며, 중간 코드는 기계어를 포함한 또 다른 언어로 번역될 수 있습니다.
- Xcode 를 사용하여 C 언어를 컴파일 하는 경우 LLVM (clang) 을 사용합니다.
- Emscripten LLVM 은 C / C++ 언어로부터 Web Assembly 결과를 만듭니다.