
이전 글인 Github Codespaces로 군대에서 코딩하기에 이어서 알고리즘 문제 풀이를 위한 CMake 환경 구성을 해보도록 하겠다.
이 환경 설정은 Github Codespaces 뿐만 아니라 일반적인 Linux 환경에서도 적용되는 것이다. 따라서 윈도우에서도 WSL를 사용해 VS Code 환경에서 해당 내용으로 개발 환경을 구축할 수 있다.
1. CMake, g++ 설치 확인CMake 할 때 쪼오오금 도움이 되는 문서
CMake 환경 구성에 어려움이 있다면 위 문서를 참고하고 아래 내 폴더 구조를 보면 되겠다.
아래 사진은 Github Codepaces에서 빈 템플릿(Blank)을 생성 후 알고리즘 문제풀이에 필요한 패키지들이 설치되었는지 터미널에서 확인한 것이다.
cmake와 g++, Python이 설치되어있어 C/C++, Python을 활용해 알고리즘 문제를 풀 수 있다.

2. CMake Tools Extension 설치CMake Tools 확장을 설치하면 CMake 확장까지 같이 설치된다.
해당 확장을 이용해 VS Code에서 CMake환경을 편하게 이용할 수 있다.

3. CMake 환경 설정하단의 상태표시줄에 CMake 확장 메뉴들이 나와있는지 확인한다.
아래 사진에서는 Live Share 다음 메뉴들이 CMake 확장 버튼들이다.

해당 버튼들이 안보인다면 상태표시줄을 우클릭 후 CMake Tools(확장)을 선택해 표시한다.

No Kit Selected 버튼을 눌러 컴파일러를 선택해준다. 나는 GCC 9.4.0을 선택했다.

4. 폴더 구조아래는 CMake를 이용해 개발 및 알고리즘 문제를 푼다고 가정한 폴더 구조이다.
src 안에 acmicpc, car라는 서브 디렉터리가 존재하고
그 디렉터리마다 각각 소스파일들이 존재한다.
루트 디렉터리
├── CMakeLists.txt
└── src
├── CMakeLists.txt
├── acmicpc
│ ├── CMakeLists.txt
│ ├── 4029.cpp
│ └── 1092.cpp
└── car
├── CMakeLists.txt
├── main.cpp
├── Car.cpp
├── Car.h
└── Vehicle.h
~/CMakeLists.txt
가장 최상위의CMakeLists로 프로젝트 관련 설정들을 넣어준다.cmake_minimum_required(VERSION 3.0.0) project(algorithm) add_subdirectory(src)
src/CMakeLists.txt
하위 디렉터리들을 프로젝트에 추가해준다.add_subdirectory(acmicpc) add_subdirectory(car)
src/acmicpc/CMakeLists.txt
acmicpc디렉터리는 백준 알고리즘 문제를 푸는 소스코드를 모아두고 실행하는 장소이다.소스파일 하나 하나가 독립된 실행 파일로 존재해야하므로
add_executable을 통해 설정해주었다.
나중에CMakeLists.txt를 더 잘 다루게 되면 이러한 설정도 변수 등을 통해 자동화를 해봐야겠다.
add_executable(실행이름 [공백] 같이 빌드할 파일들 나열)이렇게 사용하면 된다.add_executable(1092 1092.cpp) add_executable(4029 4029.cpp)
src/car/CMakeLists.txt
car디렉터리는 여러 파일을 같이 빌드해야하는 상황이라 가정하고 만들어보았다.
main.cpp을 실행파일로 두고 나머지Car.cpp와Car.h를 같이 빌드한다.add_executable(Car main.cpp Car.cpp Car.h Vehicle.h )
5. 실행하기상태표시줄에서 왼쪽에서부터 맨 우측(화살표 오른쪽 버튼)에서 실행할 목록을 선택할 수 있다.

1092.cpp을 다음과 같은 내용으로 설정 후 [1092]로 선택하고 바로 옆 화살표 버튼을 누르면 잘 실행되는 것을 볼 수 있다.
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
return 0;
}

CMakeLists.txt를 편집한 후에는 반드시 저장(Ctrl + S)을 해주어야 한다.
저장과 동시에 CMake명령어가 실행되며 출력창에서 해당 결과가 나온다.
Configuring done, Generating done, Build files have been written to:~가 나온다면 정상적으로 설정이 된 것이다.

물론 실행할 파일들 또한 저장을 한 이후 실행해야한다.
6. 디버깅(Debugging)위와 동일하게 실행팔 파일을 선택 후
원하는 위치에 중단점을 찍고 화살표가 아닌 벌레(디버깅 실행)버튼을 누르면 된다.

Cmake를 이용해 Github Codespaces환경에서 알고리즘 등 cpp 실행 환경 구현C++ 공부를 하면서 각 진도마다 디렉터리를 구분하고 실행하기를 원할때도 유용CMake는 JetBrains사의 CLion에서 사용했었는데, VS Code에서도 이렇게 사용이 가능하다.
처음 사용하게 된다면 어렵게 느껴질 수 있지만, 익숙해진다면 C/C++ 공부와 알고리즘 문제 풀이에 있어서 가장 편리한 기능이라고 생각한다.