내가 코딩 테스트를 볼 때 주로 사용하는 언어는 C++이다.
그래서 코딩을 할 때 C++의 컴파일을 자체적으로 지원해주는 Visual Studio를 사용해왔는데,
아는 지인이 계속 VS Code로 넘어가라고 말을 해서 VS Code로 넘어갔다.
하지만 VS Code는 C++의 컴파일 및 실행을 자체적으로 지원하지 않아서
이 글을 보고 따라해서 컴파일과 실행을 할 수 있도록 해주었다.
그런데 컴파일과 실행을 따로 하는 것이나 실행 파일을 삭제해주지 않는 것이 불편했었다.
그래서 컴파일과 실행, 그리고 실행 파일 삭제를 한번에 할 수 있는 방법을 찾아보았고,
어떻게 하는지 그 방법을 다른 사람들과 공유하고자 이 글을 작성하게 되었다.
🚨 이 글은 VS Code에서 C/C++ 코딩 환경을 구축했다고 가정하고 쓴 글입니다.
{
"version": "2.0.0",
"runner": "terminal",
"type": "shell",
"echoCommand": false,
"presentation": {
"reveal": "always",
"panel": "shared"
},
"tasks": [
{
"label": "compile",
"command": "g++",
"args": ["${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
"problemMatcher": {
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"label": "execute",
"command": "cmd",
"args": ["/C", "${fileDirname}\\${fileBasenameNoExtension}"],
"dependsOn": ["compile"]
},
{
"label": "delete",
"command": "del",
"args": ["${fileDirname}\\${fileBasenameNoExtension}.exe"],
"dependsOn": ["execute"]
}
]
}
우선 이 방법은 C나 C++ 중 하나만 선택해서 진행해야 하고 나는 C++을 선택했기에
컴파일에 관련된 모든 코드를 C++을 컴파일 해주는 코드를 제외하고 삭제해주었다.
(C를 선택했다면, C를 컴파일해주는 코드를 제외한 모든 코드를 삭제해주면 된다.)
그리고 나는 Window를 사용하기 때문에 del 명령어를 통해 실행 파일을 삭제하게 해주었다.
만약, Linux나 Mac을 사용한다면, del 명령어 대신에 rm 명령어를 사용해야 한다.
마지막으로, dependsOn 속성을 이용해 작업들 간의 의존성을 설정해주었는데,
이렇게 의존성을 설정하게 되면 의존성을 설정한 작업을 실행했을 때
의존성이 설정된 작업이 먼저 실행되고, 완료된 다음에 의존성을 설정한 작업이 실행되게 된다.
[
{
"key": "ctrl+alt+c",
"command": "workbench.action.tasks.runTask",
"args": "delete"
}
]
앞서 설정했던 작업들 간의 의존성 때문에 실행 파일을 삭제하는 작업만 실행하게 된다면,
컴파일을 진행하고 컴파일한 파일을 실행한 후에 실행 파일을 삭제하게 된다.
따라서 이전에 작성했던 코드를 모두 삭제하고 실행 파일을 삭제하는 코드를 추가해주었다.

앞에서 단축키를 ctrl+alt+c로 설정했기에 이를 누르게 되면,
위와 같이 컴파일 및 실행, 실행 파일 삭제를 한번에 하는 것을 볼 수 있다.