재미없는 개발 환경 세팅을 해보자.
내 컴퓨터는 M1 맥북이고 에디터는 vscode를 사용할 것이다.
g++
일본어를 할줄 몰라서 일본 여행을 갔을 때 답답했던 경험이 있다.
하지만 재밌게 여행할 수 있었는데, 말을 직접 하지는 못해도 파파고로 번역하면 의사소통이 가능했기 때문이다.
프로그래밍도 마찬가지다.
컴퓨터는 우리가 c++로 작성한 코드를 이해하지 못한다.
따라서 우리가 이해하는 프로그래밍 언어를 컴퓨터가 이해하는 기계어로 번역해주는 작업이 필요하다.
이 작업을 컴파일(compile)이라고 하고, 컴파일을 수행하는 소프트웨어를 컴파일러(compiler)라고 한다.
즉 파파고로 한국어를 일본어로 번역했다면, 컴파일러로 프로그래밍 언어를 기계어로 컴파일하는 것이다.
여러 c++ 컴파일러 중에 g++을 사용할 것이다.
그런데 왠 떡인지 이미 g++이 설치돼있었다!!!!!
brew 설치할 때, g++이 포함되어 있는 xcode command line tools도 설치해서 그런 것 같다.
아무튼 g++이 잘 작동하나 확인해보자.
테스트용 간단한 c++ 파일을 만들었다.
// test.cpp
#include <iostream>
using namespace std;
int main(void)
{
cout << "Hello, world!";
return 0;
}
만든 c++ 파일을 g++로 컴파일하자.
$ g++ test.cpp
컴파일하니 실행 파일 a.out이 생성되었다.
./파일이름 명령어로 파일을 실행시키자.
$ ./a.out
Hello, world!가 잘 출력되었다!!!
a.out 말고 다른 이름의 실행 파일을 만들고 싶다면 -o 옵션을 추가하면 된다.
$ g++ test.cpp -o test
test 파일이 잘 생성되었고, 이것도 잘 작동한다.
.zshrc command 설정
컴파일 할 때마다 매번 -o를 붙이는 건 귀찮은 작업이다.
그래서 .zshrc 파일에 명령어를 추가해주자.
.zshrc는 vim 명령어로 편집할 수 있다.
$ vim ~/.zshrc
키보드 i를 눌러 insert 모드로 전환한 다음,
.zshrc파일에 아래의 코드를 추가해주자.
수정사항을 저장하고 싶다면 키보드 esc를 누른 뒤, :wq를 입력하면 저장된다.
저장하고 싶지 않다면 :q!를 입력하자.
function gpp() {
g++ $1'.cpp' -o $1'.exe'
}
명령어를 함수로 정의한 이유는 컴파일할 c++ 파일명을 파라미터로 쓰기 위해서다.
$1는 첫번재 파라미터를 의미한다. 당연히 두번째 파라미터는 $2이다.
명령어는 아무거나 사용해도 되지만 g++을 시용해서는 안된다!!
함수 안에 g++ 을 호출하고 있기 때문에 명령어를 g++로 해버린다면, 무한루프에 빠진다.
그래서 gpp로 정했다.
source 명령어로 수정사항을 적용하고 확인해보자.
$ source ~/.zshrc
$ which gpp
잘 적용되었다.
이제 'g++ 파일명.cpp -o 실행파일명.exe' 가 아닌 'gpp 파일명'으로 간편하게 컴파일 할 수 있다.
명령어를 만든 김에 몇가지를 더 추가하자.
우선 컴파일 할 때 c++ 17 버전으로 컴파일하게 해주는 옵션 '-std=c++17'을 추가해줬고,
컴파일하고 자동으로 실행파일을 실행시키도록 만들었다.
function gpp() {
g++ -std=c++17 $1'.cpp' -o $1'.exe'
./$1'.exe'
}
짠!! 컴파일 후, 자동으로 실행이 잘 되었다.
c/c++ extension pack
vscode에는 개발을 도와주는 훌륭한 익스텐션들이 많다.
물론 c++ 관련 익스텐션도 있다.
Microsoft에서 만든 c++ 익스텐션인 c/c++ extension pack을 설치하자.
포맷 설정
난 vscode의 default formatter로 prettier extension을 사용하고 있다.
하지만 prettier는 c++에 해당하는 포맷을 제공하고 있지 않으므로, 따로 설정해야 한다.
vscode에 팔레트를 열어(단축키 cmd + p)
>Preferences: Open User Settings (Json) 를 입력해 setting.json을 열자.
setting.json에 아래의 코드를 추가하자.
들여쓰기 간격과, 한줄 최대 글자 수를 설정하고,
코드 스타일은 google 스타일을 따르도록 하자.
"C_Cpp.clang_format_style": "{ IndentWidth: 2, ColumnLimit: 80 }",
"C_Cpp.clang_format_fallbackStyle": "Google",
해당 페이지엔 clang_format의 자세한 설명과 google 스타일 외 여러 스타일의 소개과 나와 있다.
이렇게 설정하고 코드를 저장하면..... 코드가 정렬되지 않는다.
왜냐하면 앞서 말한대로 아직 default formatter가 prettier이기 때문이다.
따라서 c++의 default formatter을 따로 설정해줘야 한다.
아까 수정한 setting.json 파일에 밑에 코드를 추가해주면 끝이다.
"[cpp]": {
"editor.defaultFormatter": "ms-vscode.cpptools"
}
이제 저장을 하면,
코드가 아래처럼 자동 정렬되었다.
간단하게 c++ 개발 환경 세팅을 완료했다!!
윈도우 노트북에서 처음 세팅할 떄는 이것저것 설치하고 많이 애먹었던 기억이 있는데, 맥북은 엄청 간단했다.
'기타 개발' 카테고리의 다른 글
Sync vs Async / Blocking vs Non-blocking (0) | 2022.06.15 |
---|---|
REST API (2) | 2022.05.25 |
웹소켓(Web Socket) (4) | 2022.05.18 |
쿠키, 세션과 JWT (0) | 2022.05.07 |
1. 인터넷은 무엇일까 (1) | 2021.11.10 |