개요
리눅스용 윈도우즈 하위 시스템(Windows Subsystem for Linux, 이하 WSL)을 사용하면 개발자는 가상 머신 사용으로 발생하는 오버헤드 없이 대부분의 CLI 도구, 유틸리티, 응용프로그램을 포함한 GNU/Linux 환경을 윈도우에서 직접 수정 및 실행할 수 있습니다.
이번 포스트에서는 WSL 을 설치하고 C/C++ 개발을 위한 환경을 구축한 후, 이를 Visual Studio Code와 연결해 사용할 수 있는 환경을 꾸며 보겠습니다.
WSL 설치
※ 출처 : Microsoft Docs - Windows Subsystem for Linux Installation Guide for Windows 10
-
PowerShell
을 관리자 권한으로 열고 아래의 명령을 실행합니다.Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
-
컴퓨터를 재시작합니다.
-
Microsoft Store를 열어 Linux로 검색합니다. 검색 결과에서 원하는 리눅스 배포판을 선택한 후 설치합니다. (저는 Ubuntu를 선택하여 설치하였습니다.)
-
설치가 완료되면 실행합니다. 실행방법은 윈도우 메뉴에서 설치한 리눅스 배포판을 선택하거나 명령 프롬프트에서
wsl
을 입력합니다. WSL이 실행되면 리눅스 터미널이 화면에 열립니다. (최초 실행은 초기화를 위한 시간이 필요합니다.)
- 안내에 따라 사용자 계정 및 암호를 생성합니다.
(Windows 용) Visual Studio Code와 WSL 연동
이제 WSL을 제가 자주 사용하는 VS Code와 연결하여 보겠습니다. 이를 위해 다양한 방법이 존재하지만 가장 간단한 방법이며 Microsoft에서 추천하는 방법은 VS Code의 확장 프로그램인 Visual Studio Code Remote -WSL를 사용하는 것입니다.
이 확장 프로그램을 사용하면 명령어와 다른 확장 프로그램들을 WSL에서 직접 실행할 수 있기 때문에 WSL 내부의 파일이나 WSL에 마운트 되어 있는 Windows 파일 시스템을 경로, 바이너리 호환성, 또는 크로스 OS 문제에 구애받지 않고 편집할 수 있습니다.
해당 확장 프로그램의 가장 큰 장점은 VS Code 가 제공하는 자동완성 기능과 코드 내비게이션, 디버깅을 로컬 환경과 동일하게 제공한다는 점입니다.
프로그램 설치
- Visual Studio Code를 windows 측에 설치합니다. 설치 방법은 간단하기 때문에 상세한 내용은 기술하지 않습니다.
참고 설치 진행과정 중 추가 작업 선택 창에서 PATH에 추가(다시 시작한 후 사용 가능)가 체크되어 있는지 확인하도록 합니다. 이 옵션을 사용하면, WSL 폴더에서
code
명령어로 VS Code를 편리하게 실행할 수 있습니다.
-
링크를 클릭하여 Remote Development 확장 프로그램을 VS Code에 추가 설치합니다.
-
확장 프로그램을 설치한 후, 윈도우 측 의 Git에서 소스코드의 line ending을 윈도우즈 형식으로 변경 하지 못하도록 설정합니다. 윈도우 프롬프트에서
git config --global core.autocrlf input
명령을 입력합니다.
WSL의 폴더 열기
관련 프로그램을 모두 설치하였으므로 WSL 내부의 폴더를 VSCode를 이용하여 열도록 합니다.
-
시작 메뉴 아이템이나 명령어 프롬프트에서
wsl
을 입력해 WSL 터미널 창을 엽니다. -
터미널에서 열고자 하는 폴더로 이동하여
code .
를 입력합니다. 처음 이 명령어를 입력했다면 VS Code가 WSL에서 실행되는데 필요한 컴포넌트를 패치하는데 시간이 조금 걸립니다. -
잠시 후, 새로운 VS Code창이 뜨면 VS Code가 WSL상의 폴더를 열고 있다는 알림을 확인할 수 있습니다.
-
진행이 완료된 후, 좌측 하단에 WSL 표시를 볼 수 있습니다. 이를 통해서 VS Code가 정상 동작하는 것을 확인할 수 있습니다.
이것으로 VS Code 상에서 실행되는 파일 편집 및 컴파일 명령어들은 WSL 환경에서 실행됩니다.
간단히 이를 시험해보기 위해 다음과 같이 수행합니다.
- WSL 터미널 창을 엽니다.
- 원하는 폴더로 이동하여
main.cpp
파일을 생성한 후 Hello World를 출력하는 코드를 작성합니다.
$ cd ~
$ mkdir Hello
$ cd Hello
$ touch main.cpp
$ code .
// main.cpp
#include <iostream>
using namespace std;
int main(void) {
cout << "Hello World" << endl;
return 0;
}
- 작성한
main.cpp
파일이 선택된 상태에서F5
를 눌러 디버깅 시작을 실행합니다. 이어서 발생하는 선택 메뉴에서는 C++(GDB/LLDB) -> g++ build and debug active file 순으로 선택합니다.
- VS Terminal에
Hello World
가 출력되는 것을 확인할 수 있습니다.
참고
'운영체제' 카테고리의 다른 글
Node.js 오류 @ WSL (0) | 2020.03.09 |
---|---|
Package Offline 설치 (0) | 2020.02.13 |
(리눅스) 네트워크 카드에 다중 IP 설정 (0) | 2019.08.18 |
유닉스(리눅스) - man 페이지 (0) | 2018.09.20 |
유닉스계열 시스템 시간 조회 및 설정 (0) | 2018.08.09 |