전에 포스팅으로 vscode server를 만든 적이 있다. vscode server에서 C나 Cpp을 테스트해보고 싶었으나 그 과정이 복잡하여 중간 중간 실패를 많이 하게 되었다. 오늘은 이를 정리하여 포스팅하고자 한다.

C/C++ 확장 설치
먼저 진행을 위해서 아래의 확장을 설치해주도록 하자. 별다른 이슈가 없다면 설치는 간략하여 내용을 생략한다. 설치과정중에 아래 확장이 나타나지 않아서 수동으로 설치를 진행하였었는데 vsix파일을 설치를 클릭하여 설치할 수 있다.


프로젝트 생성
자 이제 멀고도 험난한 hello world 를 실행해보도록하자.

파일 준비하기
hello.Cpp 이라는 파일을 아래와 같이 생성해보자.

#include <iostream>
int main(){
std::cout << "Hello World" << std::endl;
return 0;
}
출력될 파일들이 저장될 bin 폴더도 생성해두도록 하자.

컴파일러와 옵션 설정
Ctrl+Shift+P를 클릭 후 [Configure Default Build Task]를 클릭 후 아래와같이 따라한다.


위 그림처럼 실행하면 3개 선택지가 나오는데 우리는 task.json파일을 수정할 것이기 때문에 아무거나 클릭해도 무방하다.
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g",
"${file}",
"-o",
"${workspaceFolder}/bin/${fileBasenameNoExtension}"
],
"problemMatcher": {
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
"group": {
"kind": "build",
"isDefault": true
}
},
{
"type": "shell",
"label": "execute",
"command": "cd ${workspaceFolder}/bin && ./${fileBasenameNoExtension}",
"group": {
"kind": "test",
"isDefault": true
}
},
]
}
(단축키 설정)
Ctrl+Shift+P 를 입력 후 keyboard Shortcuts 클릭 후 아래 빨간 부분 클릭

// 키 바인딩을 이 파일에 넣어서 기본값 재정의
[
{"key":"ctrl+b","command":"workbench.action.tasks.build"},
{"key":"ctrl+r","command":"workbench.action.tasks.test"},
{
"key":"ctrl+shift+b",
"command":"workbench.action.toggleSidebarVisibility"},
{"key":"ctrl+shift+r","command":"workbench.action.openRecent"}
]
변경한 단축키는 아래와 같다.
ctrl+b : 빌드
ctrl+r : 오브젝트 테스트
오브젝트 파일 : 소스코드(hello.cpp)가 컴파일이 완료되면, 기계어로 번역된 파일이 생성되는데 이 파일을 오브젝트 파일이라 함.
실행 및 확인
hello.cpp 파일을 클릭한 상태에서 ctrl+b를 입력하자. 그러면 터미널에 아래와 같이 출력이 되며, bin 폴더 내에 hello라는 object가 생성될 것이다.

이제 오브젝트 파일을 클릭하고 ctrl+r을 입력해보자. 아래와 같이 Hello World 가 출력되는 것을 확인 할 수 있다.

참고
