이전 글인 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++
공부와 알고리즘 문제 풀이에 있어서 가장 편리한 기능이라고 생각한다.