요약
이 수업은 강좌 전체에서 사용할 환경을 설치하고 확인해 둔다. 먼저 무엇을 왜 설치하는지 설명한다. 독립된 프로그램인 컴파일러, 그것을 호출하는 편집기인 Visual Studio Code, 그 편집기의 공식 C++ 확장, 그리고 컴파일러를 중개자 없이 호출할 수 있는 터미널이다. 이어서 시스템마다 완전한 안내를 제공한다. Windows에서는 UCRT64 환경과 GCC를 갖춘 MSYS2, 또는 대안으로 Microsoft의 컴파일러를 쓰고, macOS에서는 Clang이 들어 있는 Xcode 명령줄 도구, 또는 Apple의 버전으로 부족하면 Homebrew의 GCC를 쓰며, Linux에서는 Debian과 Ubuntu, Fedora, Arch의 배포판에 들어 있는 GCC를 쓴다. 그 뒤로 세 시스템에서 똑같은 편집기와 확장의 설치, 그리고 Windows 콘솔이 UTF-8로 텍스트를 쓰고 읽도록 하는 설정을 다룬다. 끝으로 한국어 한 줄과 컴파일러가 적용하는 C++ 표준을 출력하는 확인용 프로그램, 그리고 설치에서 흔히 생기는 문제를 각각의 원인과 해결책과 함께 다룬다.
학습 목표
- 자신의 시스템에 C++23을 지원하는 컴파일러를 설치하고 터미널에서 그 버전을 확인한다.
- Visual Studio Code와 그 공식 C++ 확장을 설치하고, 그것으로 작업 폴더를 연다.
- 첫 확인용 프로그램을 터미널과 편집기 양쪽에서 컴파일하고 실행한다.
- 설치에서 흔히 생기는 문제(컴파일러를 찾지 못함, 오래된 버전, 인식되지 않는 표준) 가운데 적어도 세 가지를 진단하고 해결한다.
무엇을 왜 설치하는가
프로그램, 컴파일러, C++ 수업에서 보았듯이, C++로 쓴 프로그램은 쓰인 그대로 실행되지 않는다. 컴파일러가 그것을 실행 파일, 곧 운영 체제가 실행할 수 있는 기계어 명령어가 담긴 파일로 번역한다. 그렇다면 프로그래밍에는 적어도 서로 다른 두 가지가 필요하다. 프로그램의 텍스트를 쓸 곳과, 그것을 실행 파일로 바꾸어 줄 번역자이다. 앞의 것은 편집기가 제공하고, 뒤의 것은 컴파일러가 제공한다. 둘은 별개의 프로그램이어서 따로 설치되고 따로 고장 날 수 있으므로 혼동하지 않는 것이 좋다. 편집기는 아무것도 컴파일하지 않으며, 컴파일러에게 컴파일을 부탁하고 컴파일러가 답한 내용을 보여 줄 뿐이다.
이 분리에서 실제적인 결과가 하나 나오며, 이 수업의 모든 안내는 그것에 기대고 있다. 편집기가 "컴파일"할 때 실제로는 터미널에 g++ main.cpp -o main 같은 명령을 쓰는 것이며, 이는 학습자가 직접 쓸 수 있는 것과 똑같다. 여기서 편집기가 하는 일은 모두 터미널, 곧 운영 체제에 명령을 쓰는 텍스트 창에서 손으로도 할 수 있다는 것, 그리고 편집기가 고장 나면 터미널을 써서 결함이 편집기에 있는지 컴파일러에 있는지 알아낼 수 있다는 것이 따라 나온다. 그래서 이 강좌는 첫날부터 둘을 함께 쓴다. 편집기는 편리함을 위해, 터미널은 무슨 일이 일어나는지 알기 위해 쓴다.
설치할 구성 요소는 네 가지이다.
- 컴파일러와 그 표준 라이브러리. 이 강좌는 C++23 표준을 쓰므로, 컴파일러는 그것을 인식해야 하고, 그 라이브러리에는
std::println함수를 제공하는<print>헤더가 있어야 한다. Windows와 Linux에서는 GCC(C++용 명령은g++)를, macOS에서는 Clang(clang++)을 쓴다. GCC 15 이상이 필요하다.<print>헤더는 버전 14에서 GCC의 라이브러리에 들어왔지만, 컬렉션 전체를std::println함수로 출력하는 기능은, 이 강좌가 프로그램, 컴파일러, C++ 수업부터 그 뒤의 많은 수업에서 쓰는 것으로, 15에 와서야 들어왔다. macOS에서는 Xcode 16 이상의 도구가 필요하다. - 편집기: Visual Studio Code이다. 무료이고 세 시스템에서 같은 프로그램이므로, 강좌의 지시는 모든 시스템에 그대로 적용된다.
- Visual Studio Code용 Microsoft의 공식 C/C++ 확장. 편집기에 언어를 가르쳐 주는 것으로, 코드에 색을 입히고, 입력하는 동안 오류를 표시하고, 이름을 자동 완성하며, 컴파일러와 디버거를 호출하는 법을 안다.
- 디버거. Windows와 Linux에서는 GDB, macOS에서는 LLDB이다. 실행을 멈추고 프로그램의 상태를 살펴볼 수 있게 해 주는 프로그램이다. 지금 컴파일러와 함께 설치하며, 4단원부터 쓴다.
아래의 안내는 서로 독립적이다. 학습자는 각자 자기 시스템의 안내를 따른 뒤 Visual Studio Code 부분으로 건너뛴다. 명령 블록에서 줄 맨 앞의 $ 기호는 터미널의 프롬프트를 나타내며 입력하지 않는다. 이 기호가 없는 줄은 터미널이 응답한 내용이다. 여기서 인용하는 공식 사이트에서만 내려받는 것이 좋다. 다른 곳에서 얻은 설치 프로그램은 오래되었거나 변조되었을 수 있다.
콘텐츠를 불러오는 중…