vscode 에서 c++ 개발 시작!
나처럼 파이썬을 기본으로 입문한 사람들에게 vscode는 파이참과 함께 가장 인기가 많은 느껴지곤 한다. 파이참과 비교를 했을때, 뭔가 설정할 부분이 많고 잘못 건드리면 툭하고 에러가 나는 어려운 에디터라고 생각이 들었다. 하지만 연구를 진행하며 리눅스에서 c++로 개발을 연습해야할 일이 생겨 공부를 했다.
vscode는 실행을 하기 위해 몇가지 json 파일(c_cpp_properties.json: 에디팅에 관한 설정, tasks.json: 툴에 관한 설정, launch.json: 실행에 관한 설정)을 작성해야한다. 셋 다 영역이 모호하다는 느낌이 강하게 들며, 실제로 결국엔 동일한 뜻의 내용을 적을 때가 많다. 꼭 해야하나 싶지만, 보통 이걸 애매하게 했다간 오류가 났던 걸로 기억한다.
요점
원하는 결과: 단순한 소스코드를 적는다 > 컴파일(빌드)는 ctrl + shift + b 이다. 자동 빌드 단축키라, 컴파일러를 바꾸고 싶을 땐 상단의 메뉴바에서 Terminal 에서 제일 아래에 Configure Default Build Task를 눌러 아래 나오는 목록에서 원하는 걸 선택한다. > 빌드가 진행된다 > 우측 상단의 화살표 버튼이나 바로 옆에 목록을 열어 실행을 했을 때 설정된 실행 프로그램으로 잘 실행되어야 한다.
순서
1. c_cpp_properties.json (c언어 개발 환경 변수 설정)
2. launch.json (화살표로 run 하는 상황 설정)
3. tasks.json (각종 명령어를 그룹으로 묶어 단축키로 지정하는 설정)
1. c_cpp_properties.json 작성
다른 언어를 사용할 때에도 tasks.json이나 launch.json은 종종 수정했던 걸로 기억을 하는데, 이건 제목에서 처럼 c나 cpp 을 위한 코드이다. c나 c++언어에서 특히 지정해야 하는 컴파일러, 라이브러리의 경로를 설정해준다.
(근데 tasks.json 에서 또 컴파일러를 설정해주긴 한다...)
ctrl + shift + p 를 누르면 명령 팔레트가 뜬다.
명령팔레트에서 c edit con... 정도만 쳐도 위와 같은 메뉴가 뜬다(select configuration > JSON 도 같은 방법이다).
UI 와 JSON 두가지가 뜰 텐데, UI로 환경설정을 할 수도 있으나 보통 자료들이 JSON을 수정하고 있어서 JSON으로 선택한다.
행동
1. 컴파일러 변경
나의 경우, visual studio를 먼저 window에서 연습을 하고 있었다. 따라서 visual studio에서 사용하는 컴파일러가 분명히 컴퓨터에 먼저 설치된 상태였을 것이고, vsc에서도 이 경로를 자동으로 잡은 것 같다. 이것을 변경해본다(선행조건: mingw를 깔아 컴퓨터에 g++ 컴파일러가 mingw 설치폴더 내에 동봉되어 있을 것).
Before
After
2. 라이브러리 경로 추가
Before
After
이 행동을 하는 이유는, C++에서 기본으로 사용하는 라이브러리(std 라이브러리)의 경로를 지정해주기 위해서이다. 사실 컴퓨터 개발 일을 할 때에는 내가 뭘 하려는지, 컴퓨터가 자동으로 알아먹어서 알맞은 것을 떼어오는 경우가 없다. 그래서 특정한 조건을 만족하지 않고서는, 소스코드만 적어서 실행했을 때, 원하는 결과가 나오는 마법 같은 일은 일어나지 않는다. 마치 일일이 선을 연결하듯이 필요한 조건들의 경로를 지정해준다.
//실험삼아 이걸 하지 않고 Hellow World를 해도 사실은 잘 돌아갔다. 그래도 해주자.
// 대중적인 c++ 개발 도구인 visual studio에서는 소스코드만 적어도 이정도 기본적인 프로그램은 빌드 및 실행이 된다.
3. 인텔리센스 설정