Mac vscode c++ settings

ROK·2022년 11월 23일
0

맥북에서 vscode c++ 디버그 세팅하기

원래는 기존에 윈도우를 사용하기 때문에 mac 세팅할 일이 없는데, 우연히 사용해볼 수 있는 기회가 생겨서 이것저것 만지다 아주 힘들게 세팅을 했다.

나중에 언젠가 맥을 쓸 생각도 있기 때문에 나중에 또 찾아보는 수고를 하지 않기 위해서 미리 정리해둘려고 한다.

솔직히 처음에는 쓸 생각이 없었는데 쓰다보니 윈도우랑 달라서 나중에 백퍼 까먹을게 눈에 보여서 적음

tasks.json

결론적으로 디버깅은 tasks.json 파일이 가장 중요한 것 같다.

간단하게 vscode에서 필수적으로 설치해야하는 extension이나 그런 설치 같은 경우에는 다른 블로그들에도 아주 잘 정리가 되어있다.
난 스스로가 설정하면서 가장 이해가 안되고 찾아보기 힘들었던 tasks.json 파일만 할려고 한다

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "gcc.exe build active file",
			"command": "gcc",
			"args": [
				"-g",
				// // 파일 하나만 컴파일
				// "${file}",
				// 헤더파일 포함 컴파일
				"${fileDirname}/**.c",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}.out"
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"presentation": {
				"echo": false,
				"reveal": "always",
				"focus": true,
				"panel": "shared",
				"showReuseMessage": false,
				"clear": false
			}
		},
		{
			"type": "shell",
			"label": "g++.exe build active file",
			"command": "g++",
			"args": [
				"-g",
				// // 파일 하나만 컴파일
				// "${file}",
				// 헤더파일 포함한 컴파일
				"${fileDirname}/**.cpp",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}.out"
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"presentation": {
				"echo": false,
				"reveal": "always",
				"focus": true,
				"panel": "shared",
				"showReuseMessage": false,
				"clear": false
			}
		},
		{
			"type": "shell",
			"label": "Run",
			"command": "${fileDirname}/${fileBasenameNoExtension}.out",
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "test",
				"isDefault": true
			}
		}
	]
}

우선 가장 필요한 전체 코드이다.

내가 tasks.json에 어려움을 느낀 이유는 자료구조나 알고리즘을 자주 공부하기 때문에 헤더파일도 함께 컴파일해야하는데 다른 블로그들을 보면 거의 대부분 단순 파일 하나만 컴파일하는 방법만 알려준다.

다른 블로그들과 다르게 presentation이 추가되어있고, args에 주석으로 체크한대로 파일 하나만 컴파일하는 방식과 헤더파일을 포함한 컴파일을 나눠서 처리되어있다.

필요에 따라 다르게 사용하면 된다.

gcc, g++ 차이

그리고 굳이 gcc와 g++을 나눴는데, 우선 차이점을 먼저 확인해본다

GCC

GCC는 C언어용 컴파일러로 시작해 GNU C Compiler였으나 다른 언어들도 지원하게 되면서 GNU Compiler Collection으로 약어가 바뀌게 되었다. 다양한 운영체제를 지원해 높은 호환성을 가지고 있다고 한다.

G++

G++은 GCC에서 C++용 컴파일러이다 GNU C++ Compiler의 약어

차이점

GCC와 G++ 둘다 C, C++을 컴파일할 수 있는 공통점이 있지만, 차이점이 여럿 존재한다.

GCCG++
c와 cpp 파일을 각각 c언어 c++언어로 컴파일c와 cpp 파일을 모두 c++언어로 컴파일
C 라이브러리와 링크C++ 라이브러리와 링크
미리 정의된 매크로가 없다추가된 매크로 존재

위와 같은 차이점 때문에 C는 GCC, C++은 G++로 컴파일한다.
기존에는 모르고 막 사용하다가 에러가 몇 번 발생한 이후로 그냥 구분해서 사용하고 있다.

profile
하루에 집중하자

0개의 댓글