태그: Programming

Visual Studio로 Linux 프로그래밍 하기

Visual Studio에는 리눅스용 프로그램을 빌드할 수 있는 확장 프로그램이 존재한다. Visual C++ for Linux Development가 바로 그것으로, 여기서 다운로드 하거나, Visual Studio 2017의 경우 설치 프로그램에서 추가할 수 있다.

VS와 원격 디버거는 SSH로 연결되며, 때문에 gdb, g++, openssh-server, gdb-server 패키지가 설치되어 있어야 한다.

디버거가 연결되면 리눅스용 프로그램을 작성, 빌드, 컴파일 할 수 있게 되는데, 리눅스의 헤더파일이 VS에 기본적으로 탑재되어 있지 않기에 InteliSense를 이용할 수 없게 되는 문제가 발생한다. 이것은 공개된 리눅스 배포판에서 헤더 파일들을 가져옮으로써 해결될 수 있지만, 별다른 추가적인 조작 없이 윈도 파일시스템에 이 파일들을 가져올 수 있는 방법이 있으니, 바로 Windows Linux Subsystem을 사용하는 것이다.

Linux Subsystem은 파워쉘 명령어 ‘Enable-WindowsOptionalFeature -O -F Microsoft-Windows-Subsystem-Linux‘를 통해 활성화시킬 수 있지만, 이 기능의 활성화를 위해서는 개발자 모드를 먼저 활성화시켜야 한다.

개발자 모드는 설정의 업데이트 및 복구에서 활성화할 수 있다.

파워쉘 스크립트로 활성화가 완료된 뒤에는 반드시 bash를 실행하자. 그래야 서브시스템이 로드되고, rootfs의 압축이 풀리게 된다. 서브시스템의 위치는  C:\Users\UserName\AppData\Local\lxss 이다.

libc의 설치를 위해 g++을 설치하고 나면 헤더파일을 불러올 준비가 다 끝난다.

이 경로를 프로젝트의 Dependency Directory로 잡아주면 이제 InteliSense가 정상적으로 동작할 것이다.

 

프로젝트에서 라이브러리 의존성이 발생할 수 있는데, 원하는 라이브러리를 프로젝트 속성에서 추가할 수 있다.

Library Dependencies에서 원하는 라이브러리의 이름(lib-, .a 제거)을 입력한다. 구분자는 세미콜론이다.
그리고, Additional Library Directories에 라이브러리 경로를 추가해주면 된다.