Unreal Engine에서 자신들의 컴파일러(VS framework)를 통해서 컴파일 하게 되는데, 이때 편집기로 VSC를 사용하니 이후 일반 cpp 파일이 컴파일이 되지 않아 확인하며 쓴 글이다.
컴파일이 되지 않았던 이유는 컴파일러 셋팅과 단축키 셋팅이 있는 폴더(워크 스페이스)에서 컴파일 하지 않았기 때문이다. (기존 C++ 폴더가 워크스페이스로 지정되지 않고 Unreal Engine Project 폴더로 지정되어 있었다)
워크 스페이스(폴더)에 사용자가 셋팅 해놓은 .vscode 폴더(task.json etc)를 통해 컴파일 및 빌드, 단축키와 같은 설정을 할 수 있다.
+ 추가) Thread가 실행이 되지 않아 해결 방법을 찾던중 기존 mingw를 삭제하고 msys를 설치하여 해결하였다. 따라서 컴파일러 세팅 부분을 msys를 설치로 대체하고 vs code 세팅을 하는 것을 추천한다.
msys 설치 및 세팅
https://jhnyang.tistory.com/445
세팅 방법
https://y-oni.tistory.com/182#toc231
세팅 방법 및 문제시 해결 방법
https://rasino.tistory.com/307
mingw64 삭제하는 법
https://www.youtube.com/watch?v=WWSK8wYvs2w&list=LL&index=5&t=213s
MinGW download
https://sourceforge.net/projects/mingw/files/
C/C++ task.json
{
"version": "2.0.0",
"runner": "terminal",
"type": "shell",
"echoCommand": true,
"presentation": {
"reveal": "always"
},
"tasks": [
//C++ 컴파일
{
"label": "save and compile for C++",
"command": "g++",
"args": [
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": "build",
//컴파일시 에러를 편집기에 반영
//참고: https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher
"problemMatcher": {
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
// The regular expression.
//Example to match: helloWorld.c:5:3: warning: implicit declaration of function 'prinft'
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
//C 컴파일
{
"label": "save and compile for C",
"command": "gcc",
"args": [
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": "build",
//컴파일시 에러를 편집기에 반영
//참고: https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher
"problemMatcher": {
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
// The regular expression.
//Example to match: helloWorld.c:5:3: warning: implicit declaration of function 'prinft'
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
// // 바이너리 실행(Windows)
{
"label": "execute",
"command": "cmd",
"group": "test",
"args": [
"/C",
"${fileDirname}\\${fileBasenameNoExtension}"
]
}
]
}
keybindings.json
// Place your key bindings in this file to override the defaults
// 아래 키 바인딩을 파일에 넣어서 기본값을 덮어 씁니다.
[
// 컴파일
{
"key": "ctrl+alt+c",
"command": "workbench.action.tasks.build"
},
// 실행
{
"key": "ctrl+alt+r",
"command": "workbench.action.tasks.test"
}
]
'코딩 공부 > TIL(Today I Learn)' 카테고리의 다른 글
[직무조사] 스크린 골프 탐방 (1) | 2023.09.20 |
---|---|
[C++] ‘thread’ is not a member of ‘std’ (0) | 2023.09.20 |
[C++][대체 경로] 구름톤 챌린지 4주차 학습 일기 (2) (0) | 2023.09.07 |
[C++][통신망 분석] 구름톤 챌린지 4주차 학습 일기 (1) (0) | 2023.09.06 |
구름톤 챌린지 3주차 학습 일기(2) 맞왜틀? (0) | 2023.08.29 |