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

딥러닝 이미지 생성
전에 활용했던 서버에서 vscode가 잘 작동하지 않아서 추가로 테스트해본 결과이다. GitHub - ufoym/deepo: Setup and customize deep learning environment in seconds.Setup and customize deep learning environment in seconds. - GitHub - ufoym/deepo: Setup and customize deep learning environment in seconds.GitHubufoymdocker 이미지를 만들어보자. FROM…
Web Registry - Repositories

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 가 출력되는 것을 확인 할 수 있다.

참고

Visual Studio Code setup for C++ in ubuntu 18.04 (use not cmake)
이번 시간에는 Visual Studio Code 에 C++ 환경을 셋업해보겠습니다. 설치한 컴퓨터틑 우분투 18.04 입니다. 우분투 버전 체크는 터미널에서 $ lsb_release -a 커맨드를 쳐주면 확인할 수 있습니다. 저의 경우에..