[VS Code] Mac Clang C++17 컴파일러 환경 설정
Updated:
mac의 경우 clang 컴파일러를 사용하여 cpp파일을 컴파일 한다.
이때 clang의 default 컴파일 버전은 C++98이고 보통의 VS Code의 경우 C++11로 설정되어있을 것이다.
오랜만에 C++로 알고리즘 문제를 풀던 도중 다음과 같은 컴파일 에러를 마주하게 되었다.

C++11 컴파일러 세팅에서는 auto 키워드의 사용에 경고가 발생하고 pair 데이터를 괄호 {}로 묶어서 저장하는것이 아직 업데이트 되지 않아서 에러가 발생하는 문제가 발생했다.
컴파일러를 C++17로 세팅하기 위해 참고했던 자료들을 바탕으로 정리를 해보고자 한다.
목차
- Extension 설치
- tasks.json 설정
- c_cpp_properties.json 설정
- launch.json 설정
- 실행 및 디버그
Extension 설치
맥에서는 기본적으로 clang이 설치되어 있지만 clang --version 명령어를 통해 확인을 하고 진행하는 것을 권장한다.
먼저 C/C++ 확장 프로그램을 VS Code Extension을 통해 설치한다.
![]()
+ 추가로 C/C++ Extension Pack도 설치하는것을 권장한다.
그다음 Code Runner 확장 프로그램도 설치한다.
![]()
톱니바퀴 모양을 클릭한 후 확장 설정을 누르면 설정창으로 이동할 수 있다.

다음과 같이 Code-runner: Run In Terminal에 체크를 해준다.
![]()
옵션
해당 옵션 파트는 적용하지 않아도 C++17세팅에 영향을 미치지는 않지만 컴파일 시에 매번 나타나는 매세지 창이기 때문에 수정해 주는것이 좋다.
settings.json파일을 열어서 code-runner.executorMap을 아래와 같이 설정해 준다.
만약 code-runner.executorMap이 파일에 존재하지 않는다면 입력해준다.
![]()
tasks.json 설정
임의의 cpp파일을 생성한뒤 $($만들어져 있다면 생성할 필요 없음.) Terminal - Configure Defulat Build Task로 이동한다.
![]()
compiler: /usr/bin/clang++ 경로를 선택하여 tasks.json 파일을 생성한다.

위와 같이 "args" 부분에 “-std=c++17” , “-stdlib=libc++” 를 추가하여 준다.
C++ 버전 입력을 통해 해당 버전의 문법을 사용할 수 있다.
c_cpp_properties.json 설정
command + shift + p 를 동시 입력하여 command palette를 연다.

C/C++를 입력하고 구성 편집(JSON)을 클릭하여 c_cpp_properties.json 파일을 연다.

다음과 같이 c_cpp_properties.json를 수정한다.
launch.json 설정
실행 -> 구성추가 -> 환경 선택(Select Environment) -> C++(GDB/LLDB)
![]()
clang++ /usr/bin/clang++를 선택한다.
![]()
다음과 같이 launch.json 파일이 생성됐다.
launch.json파일의 preLaunchTask 값과 tasks.json에서 label값이 일치해야 한다.
Cmd + Shift + P -> Run By Language - cpp을 선택한 다음, Option + Control + n (>Run Code)로 프로그램을 빌드하고 실행한다.

다음과 같이 C++17로 성공적으로 컴파일 한것을 확인할 수 있다.
참조
Leave a comment