cpp 프로젝트 설정을 할 때마다 vscode setting을 하기가 너무 힘들었다. 계속 깃허브 들락날락하고.. 그래서 내 설정을 공유도 할 겸 아카이브 형식으로 세팅 파일을 공유하고자 한다.
나는 m1맥과 windows, linux 환경에서 사용하고 있다. 같은 리포지토리를 윈도우랑 리눅스, 맥에서 동시에 사용할 일이 많았다. 그래서 세팅 여러개를 만들어 사용하고 있다.
{
"version": "0.2.0",
"configurations": [
{
"name": "lldb 시작",
"type": "lldb",
"request": "launch",
"preLaunchTask": "g++build64",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "gdb에 자동 서식 지정 사용",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "디스어셈블리 버전을 Intel(으)로 설정",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
},
{
"name": "cppdbg 시작",
"type": "cppdbg",
"request": "launch",
"preLaunchTask": "g++build64",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "gdb에 자동 서식 지정 사용",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "디스어셈블리 버전을 Intel(으)로 설정",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
},
{
"name": "cmake debug",
"type": "lldb",
"request": "launch",
// Resolved by CMake Tools:
"program": "${command:cmake.launchTargetPath}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{
// add the directory where our target was built to the PATHs
// it gets resolved by CMake Tools:
"name": "PATH",
"value": "${env:PATH}:${command:cmake.getLaunchTargetDirectory}"
},
{
"name": "OTHER_VALUE",
"value": "Something something"
}
],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
맥은 lldb, 윈도우와 리눅스는 gdb세팅을 사용하면 된다. cmake를 사용한다면 cmake debug를 사용한다.
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "g++build64",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}",
"-std=c++17"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "컴파일러: /usr/bin/g++"
},
{
"type": "cppbuild",
"label": "gccbuild32",
"command": "/usr/bin/gcc",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}",
"-msse2",
"-m32",
"-masm=intel"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "컴파일러: /usr/bin/gcc"
},
{
"type": "cppbuild",
"label": "gccbuild64",
"command": "/usr/bin/gcc",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}",
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "컴파일러: /usr/bin/gcc"
},
]
}
32bit 세팅은 윈도우에서는 동작하지 않는다. 32bit 어셈블리를 다룰 일이 있어서 세팅해두었다.