이번 글에서는 Visual Studio Code에서 C언어와 C++언어를 세팅하는 과정을 알아본다.
❗ 주의 : 이 글은 튜토리얼이 아닙니다. 언어세팅을 위한 개인 탐구이고 기록입니다. 이 과정을 따라했을 때 일어나는 불이익 및 작성된 내용의 오류에 책임지지 않습니다.
(오류 수정 및 비판은 정말 감사히 받습니다.)
C++는 AT&T 벨 연구소의 비야네 스트롭스트룹이 C언어 기반으로 1985년에 발표하여 발전한 프로그래밍 언어이다.
- 위키백과
이 글에서 C와 C++을 한 번에 다루는 이유는 위에서처럼 C++언어가 C언어에서 파생되어 C컴파일러가 C++언어의 컴파일도 지원하기 때문이다. (라이브러리까지 링크하진 않는다.)
C언어는 절차지향언어이고, C++은 이로부터 파생된 객체지향 언어이다. 그리고 둘 다 컴파일을 필요로 하는 컴파일 언어이다.
GCC (GNU Compiler Collection)
컴파일러는 C, C++, 자바, 포트란, 에이다 등 여러 언어를 컴파일 할 수 있다.
(여기서 GNU는 개발 프로젝트 이름이다. 'GNU컴파일러'라고 하면 해당 프로젝트에서 개발된 GCC (GNU C Compiler)
, G++ (GNU C++ Compiler)
를 포함한다.)
GNU 컴파일러를 설치하는 방법에는 두 가지가 있는데 하나는 시그윈(Cygwin) 가상머신, 하나는 MSYS 쉘 커멘드 인터프리터를 포함해 사용하는 MinGW(Minimalist GNU for Windows)이다.
두 차이는 이 블로그에 잘 소개되어 있다.
나는 Windows를 사용하기 때문이라기보단 학교에서 애증의 민지...를 많이 사용했기 때문에 MinGW를 통해 컴파일러를 설치한다. 어차피 윈도우 환경에서 c언어는 코딩테스트용 외에 잘 사용하지 않았다.
구글 검색을 통해서 제일 유명하고 간단한 <MinGW 설치 링크>를 찾아볼 수 있는데
그런데 가~끔 환경 변수가 제대로 잡히지 않아서 재설치하는 등 애먹는 동기들이 많았다.
혹시 파일의 문제일까 싶어, 이 포스팅을 쓰는 동안엔 다른 방식으로 설치해보기로 한다.
MinGW 공식 홈페이지로 가면 Downloads > Sources 에서 다운로드 링크를 찾을 수 있다. 이곳에서 바로 릴리즈 버전을 누르면 tar.bz2 압축의 파일이 받아지는데 이건 패치 파일이고, (이미 MinGW가 설치되어 있을 때 바꾸는 파일)
설치를 위해서는 Sourses 옆에 보이는 SourceForge 링크로 들어간다.
그러면 위와 같은 페이지가 뜨는데 바로 초록색 버튼으로 달려들지 말고 (이것도 런타임 소스코드와 패치 파일이다.)
아래쪽으로 스크롤을 내려 온라인 설치파일을 찾을 수 있다.
편리해보이지만 MinGW-W64-install.exe
를 사용하면
안된다. 실행을 하면 다음과 같은 오류창이 열리는데
StackOverflow에서 찾아보니 고쳐지지 않는 고질병인 것 같다. (5년 전에도... 10년 전에도....)
그래서 통째로 다운받는 방법을 선택, MinGW는 다양한 패키지 버전들이 존재하는데, threading Model 및 Exception 핸들링 방법에 따라 나뉜다고 한다. 그래서 나는 다음 패키지 파일을 선택한다.
맨 위가 정답. 국룰.
그러나 다운받은 파일을 확인해 보면 별도의 압축해제 프로그램이 필요한 압축형식.7z 파일로 되어있다. (나는...! 포맷을 했다고...!)
이 쯤 되면 알아야 한다. MinGW 공식배포자?는 사람들이 코딩 세계에 발을 들이는 불상사를 막기 위해 솔선수범하여 입구컷을 하고 계신다는 것을.
그러나 당황하지 않고 온라인 파일 변환 사이트에 부탁을 해본다.
( 3분 소요, but, 권장하지 않습니다. 파일이 깨질 수 있습니다. 7z 압축해제 프로그램을 다운받아 이용하세요!!)
ZIP 파일로 변환된 MinGW 파일을 다시 다운로드하고,
압축해제 해준다.
압축 해제가 완료된 모습.
압축해제만 아니면 이 방법이 제일 간단하게 설치할 수 있는 것 같다.
이제 컴파일러 설치의 마지막 단계로, 윈도우에 환경변수 설정을 해준다.
환경변수를 설정하는 것은 컴퓨터에게 어떤 명령이 들어와 어떤 파일을 필요로 할 때, 그 파일이 어디에 있는지 항상 기억하고 찾아 사용할 수 있도록 해주는 것이다.
(수학여행 가는 어린이 짐 싸주듯, 컴파일러는 여기 있단다~)
윈도우키 + 검색 '환경 변수'로 해당 기능을 쉽게 찾을 수 있다.
환경변수 > 시스템 변수 > Path 선택 > 편집
새로 만들기나 빈 줄을 더블클릭해 아까 민지가 설치된 경로를 적어준다. bin
폴더 안에 실행 파일이 있으므로 수학여행가는 컴퓨터에게 이를 챙겨준다.
완료됐으면 확인을 눌러 모든 창을 닫는다.
이제, gcc가 제대로 설치됐는지 확인한다.
cmd 명령 프롬프트 창을 열어준다. (Win+X, A
터미널로도 가능)
다음 세 가지 명령이 오류없이 잘 뜨는지 확인해야한다.
gcc --version
g++ --version
gdb --version
gcc --version
명령어를 입력해준다.
확인 결과 완벽하게 설치가 완료됐다!
추가로 g++ --version
도 터미널에서 확인해봤다.
Extension 메뉴를 열고, c/c++을 검색해 가장 위의 확장을 받아준다. (IntelliSense~)
설치가 완료되면 WoW, 요즘은 튜토리얼이 잘 되어있다.
Select my default compiler를 클릭하면 컴파일러 환경변수 path 연결이 뜨는데, 설치된 MinGW 컴파일러가 잘 뜨는것을 확인할 수 있다! 선택해주면IntelliSense에서 컴파일러를 인지하고 해당 컴파일러에 맞게 조언 해준다.
이제 빌드 확인을 위해 Hello World를 작성해주고,
#include <iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
Terminal > Configure Default Build Task..
C++코드를 작성했으므로 맨 위의 g++
컴파일러를 선택해준다.
(cpp 컴파일러는 g++컴파일러의 옛날 버전인듯 하다.)
cpp는 컴파일러가 아닌 '전처리기' 라고 한다.
C 코드를 작성했다면 gcc
컴파일러를 선택한다.
이제 cpp 파일로 돌아와 Ctrl+Shift+B
를 눌러주면 빌드가 된다. 왼쪽에 .exe
파일이 생성되었다.
이제 오른쪽에 생긴 화살표에서 Run C/C++ 버튼을 눌러주면, (Ctrl+F5
)
나타나지 않으면 Ctrl+Shift+p
으로 팔레트 창을 열고, C/C++: Run C/C++ File
를 검색 후 클릭해준다.
그러면 실행을 위한 디버거를 선택하라는 창이 뜬다. 앞서 선택한 컴파일러에 맞는 디버거를 고르자.
그러면 C/C++ Extension이 자동으로 아래와 비슷한 tasks.json 파일을 생성하는데,
대강 VS Code를 위한 c, cpp파일의 빌드와 실행 설명서
로, VS Code는 tasks.json
에 미리 작성된 내용대로 터미널에 명령을 입력하게 된다.
새 tasks.json
파일을 직접 만들거나 수정하고 싶다면 팔레트에 Tasks: Configure Task
를 선택하면 된다.
task.json 내용에 대한 설명은 VScode 문서에서 자세하게 알아볼 수 있다.
C/C++ 세팅 과정이 잘 작성된 이곳에서 task.json의 내용을 참고해 수정할 수 있다.
(얍, 한글 파일명 또는 숫자로 시작하는 파일명은 컴파일러가 인식을 못합니다~ ssi로 파일명 스윽 바꾼 사실)
Hello World! 가 출력되는 것을 확인할 수 있다.
- C/C++ 컴파일러와 설치 방법에 대해 알아보았다.
- C/C++ 실행을 위한 VS Code 세팅을 해보았다.
- 프로그램 배포 시 마지막까지 사용자를 위한 편의를 제공해야한다는 점을 생각해보게 되었다.
- VS Code가 컴파일러, 디버거를 인식하고 사용하는 과정을 알게 되었다.
- tasks.json 등 추가 설정에 대해 알아보기로 했다.
웹에서 VS Code C/C++ 개발환경 설치를 검색했을 때, 자신이 무엇을 하는지 모르고 무작정 따라하기만 했었는데 생각보다 쉽게 과정을 이해할 수 있었고, 이해하고 보면 더욱 자신에 맞게 활용할 수 있겠다는 생각이 든다.💖🔥