F.R.I.D.A.Y.

Visual Studio에서 WSL로 컴파일하기 본문

DEV/Tip

Visual Studio에서 WSL로 컴파일하기

F.R.I.D.A.Y. 2022. 7. 10. 07:56
반응형

Visual Studio만큼 괜찮은 IDE가 없어서[# 진짜 다른 IDE로 못 넘어가겠다..] 리눅스 과제를 할 때도 종종 Visual Studio를 이용해서 코드를 쓰곤 한다.


기존 반反 오픈소스 진영의 대표격인 Microsoft에 새로운 CEO로 사티아 나델라가 취임하면서 그 행보가 바뀌었다. Windows PE 프로그램을 Linux에서 실행할 수 있도록 해주는 Wine의 개발에 직접적인 도움을 준다던지, Github를 인수해버린다던지.. 몇 해 전에는 .Net을 오픈소스로 풀어버렸던 적도 있다.

WSL 설치하기

돌아와서, Windows에도 변화가 생겼다. Windows kernel 위에서 Linux 커널이 돌아가도록 업데이트가 이뤄졌다. 이름이 WSL[# Windows Subsystem for Linux]으로, 기본 활성화는 되어있지 않다. 프로그램 추가/제거 항목의 Windows 기능 켜기/끄기에서 Linux용 Windows 하위 시스템을 활성화 해주어야 한다.


활성화 후 Windows가 재시작된다. 재시작 된 후에 Microsoft Store에서 Ubuntu를 검색/설치한다.


설치가 완료된 후에는 설치된 Ubuntu를 실행한다.


첫 실행 시 ubuntu 시스템 설치가 진행되고, 완료되면 계정을 생성하도록 유도된다. 계정명과 비밀번호를 입력하는 것으로 계정 생성이 끝난다.

WSL 연결을 위한 환경 구성

WSL을 연결할 때는 WSL 안에서도 연결을 위한 환경을 구성 해주어야하고, Visual Studio에서도 연결을 진행해주어야한다. 이 파트에서는 연결을 위한 환경을 구성하도록 한다. 여기를 이미 진행했다면 <Visual Studio에서 WSL 연결 설정> 항목을 참고 바란다.

ssh 서버 설정

먼저 원격 시스템 접근을 위한 ssh 서버를 활성화한다.

sudo apt install openssh-server
sudo service ssh start

위 명령으로 서버가 실행되었다.

더보기

# Windows 실행 시 자동으로 ssh 서버 실행하기

sudo systemctl enable ssh

위 명령으로 Windows가 부팅되었을 대 자동으로 ssh 서버를 실행할 수 있다.

# Windows 실행 시 자동으로 ssh 서버 실행하기

 

포트 변경하기

다른 프로그램과 충돌이 일어나지 않도록 포트를 변경한다. WSL 터미널에서 아래 명령을 입력한다.

sudo vi /etc/ssh/sshd_config

루트 권한으로 접근하므로 패스워드도 입력해준다.

sshd_config 파일이 열리면 아래와 같이 나와있다. 수정을 진행하려면 i키를 입력해 수정모드로 진입해야한다.[# 자세한 내용은 vi 편집기 사용법을 참고 바람]

항목의 #Port 22에서 #을 지우고 Port 뒤의 숫자를 1024 이상의 숫자[# 이 밑의 포트는 시스템 프로그램이나 주요 서비스에서 사용하고 있어서 이 이상으로 권장한다고 한다. 1024 이상의 포트에서도 잘 알려진 프로그램에서 기본으로 사용하는 포트들이 있으므로 설정 시 확인해야한다. ]로 변경해 활성화한다.

Port 수정 후 아래로 내려서 PasswordAuthentication no 를 yes로 수정한다.

이후 esc - wq 로 해당 변경을 저장한다.

변경 사항을 적용하기 위해 ssh 서버를 재시작한다.

sudo service ssh restart

 

C++ 빌드 환경 설정

C/C++ 개발을 하려면 C/C++을 위한 환경이 구성되어 있어야한다. 따라서 아래 명령을 실행한다.

sudo apt update
sudo apt install g++ gdb make ninja-build rsync zip

이 항목은 gdb, CMake, rsync, zip, 기본 빌드 시스템 생성기를 설치한다.

Visual Studio에서 WSL 연결 설정

WSL 터미널에서의 설정이 완료되었다면, 이제 Visual Studio에서 설정을 진행할 차례다.

여기에서는 CMake 프로젝트를 이용한다.


상단의 로컬 머신등 실행할 환경을 선택하는 곳에서 연결 관리를 클릭해 설정을 연다.


추가를 통해 호스트 이름, 포트, 사용자 이름, 암호를 입력하고 연결을 진행한다.

호스트 이름은 "localhost"혹은 "127.0.0.1"로 하고 포트와 사용자 이름, 암호는 각각 설정한 값으로 넣는다. 연결을 진행하면 아래와 같이 메시지가 발생하는데, 를 눌러 이어나가도록 한다.

이로써 WSL을 통한 Visual Studio로 Linux 개발을 할 수 있게 되었다.

CMake 디버깅을 위해 아래와 같이 설정한 후 디버깅을 진행하면

하단 리눅스 콘솔 창에 출력 결과를 확인할 수 있다.

주의사항

WSL이 리눅스와 동일하다지만, 순수 리눅스와 다를 부분이 존재할 수 있다. 따라서 개발을 WSL로 하더라도 순수 리눅스를 통해 검증을 진행하는 것이 좋겠다.


Reference.

 

Visual Studio에서 대상 Linux 시스템에 연결

Visual Studio C++ 프로젝트 내에서 원격 Linux 머신 또는 Linux용 Windows 하위 시스템에 연결하는 방법입니다.

docs.microsoft.com

 

연습: Microsoft WSL 2(Linux용 Windows 하위 시스템 2) 및 Visual Studio 2022를 사용하여 C++ 빌드 및 디버그

WSL2(Linux용 Windows 하위 시스템 버전 2)를 사용하여 Visual Studio 2022에서 C++를 빌드하고 디버그하는 방법을 알아봅니다.

docs.microsoft.com

 

# index

728x90
반응형
Comments