[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