일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 권한
- Permission
- 흰셔츠 #누런때
- 안드로이드
- MySQL
- C++ Debugging
- password
- thread
- 잠금화면
- 쓰레드
- 백그라운드
- Lockscreen
- policy
- Flutter #Android #FCM #FirebaseCloudMessaging
- C++ Build
- background_callback
- firebase_message
- 사용자추가
- C++
- MariaDB
- User
- 플러터
- Android
- 사용자삭제
- 권한부여
- VSCode
- Flutter
- Background
- YouTube API
- Today
- Total
고래 정보 분류소
[VSCode] C++ 빌드 환경 만들기(Window 10) 본문
VSCode로 간단한 C++을 이용한 알고리즘 공부나 해볼까 했다. C++ 플러그인을 설치한다고 해서 바로 빌드가 안되길래 이것저것 검색하며 찾아보니 생각보다 복잡한 과정이 필요하기에 기록을 남긴다.
먼저 VSCode에서 C/C++ 플러그인을 설치한다.
위 플러그인을 설치해야 디버깅이 가능하다. 하지만 플러그인을 설치한다고 빌드가 되는건 아니다.
빌드를 위해 Build Tools를 설치해야된다.
이 과정을 진행하기 앞서 말하지만 빌드를 위한 방법은 이 방법말고도 여러가지가 있다. MinGW를 설치하거나 Cygwin을 설치하여 진행하는 방법도 있다. 이 방법들은 이미 작성된 많은 블로그가 있으니 그 것들을 찾아보면 된다.
내가 선택한 방법은 Microsoft에서 제공하는 Build Tools를 사용하는 방법이다.
아래 주소로 접속해서 스크롤을 내리면 Build Tools다운로드가 있다. (2020-03-21 기준)
https://visualstudio.microsoft.com/ko/downloads/
빨간 네모를 다운받아 실행하면 다운로드 창이 뜨고 조금 기다리면 설치한 항목을 선택하는 화면이 뜬다.
위 화면처럼 뜰 것인데, 여기서 Visual C++ 빌드 도구를 설치한다.
설치가 되었으면 설치 경로를 따로 설정하지 않았고 2019버전을 설치했으면
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools 이 경로에 설치가 됬을 것이다.
C/C++ 파일을 빌드하는 프로그램은 cl.exe 실행 파일이다. 원활한 빌드를 위해 환경변수의 Path에 경로를 추가해준다.
cl.exe의 경로:
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.25.28610\bin\Hostx64\x64
프로젝트를 위한 폴더를 만들고 VSCode를 실행한다.
메뉴에서 File -> Open Folder.. 를 선택하여 프로젝트 폴더를 Open.
.cpp 파일이 없으면 cpp 파일을 한 개 생성 후 연다.
cpp 파일이 활성화 된 상태에서 메뉴의 Terminal -> Configure Default Build Task... 선택한다.
위 처럼 cl.exe build active file을 선택. 없으면 VSCode를 완전히 껏다가 다시 실행해보자.
그러면 폴더에 .vscode폴더가 생성되고 tasks.json 파일이 생성된다.
기본 tasks.json 파일 내용:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}"
],
"problemMatcher": [
"$msCompile"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
만약 환경변수의 Path에 cl.exe 경로를 추가해주지 않았다면 "command" 의 값을 전체 경로로 변경해야 된다.
이대로 빌드할 cpp 파일을 선택(중요)하고 Terminal -> Run Build Task... 를 선택하거나 Ctrl+Shift+b 를 눌러 빌드를 실행한다.
아마 빌드가 안될 것이다.
iostream이나 string 등 헤더를 코드에 포함시켰다면 헤더를 찾을 수 없다는 Exception이 출력 될 것이다.
헤더 뿐만아니라 추가해야 할 .lib 파일들의 경로를 args에 추가해줘야 된다.
필자는 알고리즘 공부를 위해 iostream, vector, string, cstdlib, ctime 등의 헤더를 추가했다. 아래 tasks.json 코드는 이 헤더들과 빌드에 필요한 .lib 파일들의 경로를 포함시킨 코드이다. 혹시 다른 헤더나 .lib파일을 포함해야 된다면, 그 경로 또한 추가해줘야 된다는 것을 기억하자.
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}//${fileBasenameNoExtension}.exe",
"${file}",
"/I",
"C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.25.28610/include",
"/I",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.18362.0/ucrt",
"/link",
"/LIBPATH:C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.25.28610/lib/onecore/x64",
"/LIBPATH:C:/Program Files (x86)/Windows Kits/10/Lib/10.0.18362.0/um/x64",
"/LIBPATH:C:/Program Files (x86)/Windows Kits/10/Lib/10.0.18362.0/ucrt/x64"
],
"problemMatcher": [
"$msCompile"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
2020년 3월 21일 기준 최신버전으로 설치한 경로이다. 버전에 따라 경로가 달라지니 무조건 이대로 복사해서 붙여넣지말고 버전이 있는 경로는 수정해주자.
위 코드를 보면 알겠지만 "/I" (대문자 i)는 헤더파일 경로
"/link" 다음에는 .lib경로 "/LIBPATH:[Lib 경로]" 를 적어주면 된다.
작성 후 저장하고 .cpp 파일을 선택 후 Termial -> Run Build Task... 혹은 Ctrl+Shift+b 를 눌러 빌드를 실행한다.
혹시 다시 Exception이 떳는데 Include 경로가 잘못됬다거나 .lib파일을 찾을 수 없다고 한다면 그 파일의 경로를 찾아서 위 처럼 포함시켜서 다시 빌드 해보자.
빌드가 완성되었다면 프로젝트 폴더에 .exe 파일이 생겼을 것이다. 터미널에서 실행하면 되는데 이러면 디버깅을 할 수 없다. 디버깅을 위해서 launch.json 파일을 작성하자.
.vscode/launch.json 파일을 만들고 파일 내용을 아래처럼 작성
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) 시작",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false
}
]
}
그 후 F5를 누르면 하단의 DEBUG CONSOLE 창에서 프로그램 실행 결과를 확인 할 수 있다.