참조 :
justdoitproject.tistory.com/31
여러곳에서 맥북에서 C++ 개발환경 구축하는것이 나와 있으나..
막상 잘 안된다.
그래서 나만의 방식으로 정리해 봤다.
1. VS Code 깔기
code.visualstudio.com/Download
다운 받아서 설치한다.
2. Extension 설정 (plugin)
좌측에 Extenstion 아이콘을 누르고 (단축키: ⌘(Command) + ⇧(Shift) + P) 상단에서 C/C++를 검색
C/C++ install
상단에서 다시 lldb를 검색합니다.
Vadim Chugunov의 CodeLLDB를 설치합니다. CodeLLDB는 VSCode에서 lldb를 사용해 디버깅할 수 있는 확장 플러그인 설치
두가지가 모두 설치되었다면 VSCode를 종료하고 다시 시작합니다.
3. C/C++ 파일 빌드하기
3.1 task.json 파일 수정하기
Explorer 패널에서 방금 만든 cpp 파일을 선택하고 ⌘(Command) + ⇧(Shift) + B를 누릅니다.
목록 중에 C/C++: g++ build active file을 찾고 우측에 있는 톱니바퀴모양 아이콘을 선택합니다.
Explorer 패널에서 .vscode가 생기고 그 아래 task.json 파일이 열릴 것입니다.
task.json 파일 중 arg를 아래와 같이 바꿔줍니다.
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: cpp 활성 파일 빌드",
"command": "/usr/bin/cpp",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": "build",
"detail": "컴파일러: /usr/bin/cpp"
},
{
"type": "shell",
"label": "C/C++: g++ 활성 파일 빌드 수정",
"command": "/usr/bin/g++",
"args": [
"-std=c++17",
"-stdlib=libc++",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.out",
"&&",
"${fileDirname}/${fileBasenameNoExtension}.out"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "컴파일러: /usr/bin/g++"
},
{
"label": "exec",
"type": "shell",
"command": "${fileDirname}/${fileBasenameNoExtension}.out",
"group": "build",
"problemMatcher": []
}
]
}
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": "cpp - 활성 파일 빌드 및 디버그",
// "type": "cppdbg",
// "request": "launch",
// "program": "${fileDirname}/${fileBasenameNoExtension}",
// "args": [],
// "stopAtEntry": false,
// "cwd": "${workspaceFolder}",
// "environment": [],
// //"console": "externalTerminal",
// "externalConsole": true,
// "MIMode": "lldb",
// "preLaunchTask": "C/C++: cpp 활성 파일 빌드"
// },
{
"type": "lldb",
"request": "launch",
"name": "Launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.out",
"args": [],
"preLaunchTask": "g++ build active file",
"stdio": [null,null,null],
"terminal": "integrated"
}
]
}
3.2 C/C++ 파일 빌드하기
다시 cpp 파일을 열어서 ⌘(Command) + ⇧(Shift) + B 를 눌러주시면 g++로 빌드 됩니다.
inker 오류가 발생하는 경우가 생겨 이에 대한 해결법을 안내드립니다 :
main.cc 파일 빌드 시 main.cc 가 include 중인 헤더파일에 정의된 클래스의 메소드를 정의한 .cc 파일이 같이 빌드되지 않아 링크 문제가 발생하는것을 확인하였습니다.
따라서 그러한 문제를 해결하기 위해서는 tasks.json 의 내용을 다음과 같이 살짝 수정해주면 됩니다. :
(수정된 라인 : "args : .. "${file} 에서 ${fileDirname}/*.cpp 로 수정됨)
{
"type": "shell",
"label": "g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g",
"${fileDirname}/*.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.out"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build"
},
{
"label": "exec",
"type": "shell",
"command": "${fileDirname}/${fileBasenameNoExtension}.out",
"group": "build"
}
args : 항목 내 -g 인자의 옵션을 ${fileDirname}/*.cc (혹은 ${fileDirname}/*.cpp) 로 수정해주시면 정상적으로 빌드됩니다.
짜짠~~~ 끝.