VSCode cpp설정

박동철·2022년 6월 17일
0

개요

cpp 프로젝트 설정을 할 때마다 vscode setting을 하기가 너무 힘들었다. 계속 깃허브 들락날락하고.. 그래서 내 설정을 공유도 할 겸 아카이브 형식으로 세팅 파일을 공유하고자 한다.

사용 환경

나는 m1맥과 windows, linux 환경에서 사용하고 있다. 같은 리포지토리를 윈도우랑 리눅스, 맥에서 동시에 사용할 일이 많았다. 그래서 세팅 여러개를 만들어 사용하고 있다.

launch.json

{
    "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를 사용한다.

tasks.json

{
	"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 어셈블리를 다룰 일이 있어서 세팅해두었다.

profile
서두르지 말고 한 단계 한 단계 차근차근

0개의 댓글