Visual Studio 2017에서 추가된 Linux 개발 기능을 Raspberry Pi에서 테스트해보았습니다.
원격 디버깅도 가능하다는데 아직 못해봤습니다.
1. Linux development with C++를 위한 워크로드 설치
2. 프로젝트 생성 1 - Blink
3. 프로젝트 생성 2 - ConsoleApplication
4. 참고
마지막 업데이트. 2019. 5. 2
1. Linux development with C++를 위한 워크로드 설치
이미 Visual Studio 2017이 설치되어 있는 경우에는 시작메뉴에서 Visual Studio Installer를 실행합니다.
추가로 설치할 항목을 선택하기 위해서 수정을 클릭합니다.
워크 로드에서 C++를 사용한 Linux 개발을 체크하고
추가로 포함 및 IoT 개발을 체크합니다.
수정 버튼을 클릭하면 설치가 진행됩니다.
Visual Studio 2017를 새로 설치하는 경우에는 다음 포스팅에서 소개한 대로 C++ 개발 환경 관련 항목 선택 시, 추가로 위에서 선택한 C/C++를 사용한 Linux 개발을 선택하면됩니다.
Visual Studio Community 2017 설치하는 방법
http://webnautes.tistory.com/1131
Raspberry Pi에 C/C++ 컴파일러(build-essential) 외에 추가로 gdbserver를 설치해줘야 합니다.
pi@raspberrypi:~ $ sudo apt-get install build-essential gdbserver |
2. 프로젝트 생성 1 - Blink
1. 메뉴에서 파일 > 새로 만들기 > 프로젝트를 선택합니다.
2. 플랫폼 간 하위 항목인 Linux를 선택합니다.
3. 깜박임(Raspberry)를 선택하고 확인을 클릭합니다.
다음과 같은 소스 코드가 생성됩니다.
추가로 노란색 2줄을 추가하여 printf문 출력 테스트까지 해보았습니다.
#include <wiringPi.h>
printf("hi\n"); |
4. 툴바에 있는 원격 GDB 디버거를 클릭합니다.
원격 GDB 디버거가 보이지 않는 경우 메뉴에서 도구 옵션을 선택하고...
옵션 창에서 플랫폼 간 > 연결관리자를 선택하면 추가할 수 있습니다.
이 경우 6번을 진행하세요.
5. 예를 클릭합니다.
6. Raspberry Pi에 최초 연결시에만 아래와 같은 창이 보이게 됩니다. 이후 IP가 변경되면 프로젝트 속성에서 변경해줘야 합니다.
호스트 이름에 Raspberry Pi의 아이피를 입력합니다.
사용자 이름과 암호에 각각 pi와 암호를 입력하고 연결을 클릭합니다.
빌드가 완료되면 바로 프로그램이 라즈베리파이에서 실행됩니다.
1>------ 빌드 시작: 프로젝트: Blink1, 구성: Debug ARM ------ |
7. GPIO 17번핀과 그라운드에 LED를 연결해보면 깜빡이는 것을 확인할 수 있습니다.
8. 툴바에서 디버깅 중지(빨간색 네모) 아이콘을 클릭하면 프로그램이 종료되고 LED 깜박임이 중단됩니다.
9. printf문 결과를 Visual Studio에서 보기 위해서는 메뉴에서 프로젝트 속성을 선택하고 디버깅 모드를 gdb로 변경해야 합니다.
10. 다음처럼 hi 문자열이 출력되는 것을 볼 수 있습니다.
Loaded '/lib/ld-linux-armhf.so.3'. Symbols loaded. |
3. 프로젝트 생성 2 - ConsoleApplication
1. 이번엔 콘솔 응용 프로그램으로 생성했습니다.
다음과 같은 소스 코드가 생성됩니다.
#include <cstdio> |
2. 툴바에서 플랫폼을 ARM으로 변경하고 원격 GDB 디버거를 클릭합니다.
3. 예를 클릭합니다.
4. 빌드 후, 실행되면서 다음과 같은 에러가 났습니다.
Loaded 'shared libraries loaded at this time.'. Cannot find or open the symbol file. Program received signal SIGSEGV, Segmentation fault. 0xfffffffc in ?? () |
5. 메뉴에서 프로젝트 > 속성을 선택하고 디버깅 모드를 gdbserver에서 gdb로 변경해주어 해결되었습니다.
6. 아래 노란줄 처럼 출력결과를 확인할 수 있습니다.
(gdb) 1002-enable-pretty-printing |
4. 참고
https://blogs.msdn.microsoft.com/vcblog/2017/04/11/linux-development-with-c-in-visual-studio/
'Raspberry Pi > Raspberry Pi 개발환경' 카테고리의 다른 글
Raspberry Pi 3에 Windows 10 IoT Core 설치 및 샘플 앱 테스트 (10) | 2019.05.25 |
---|---|
Raspberry Pi를 위해 Eclipse를 사용하여 OpenCV 예제 크로스 컴파일하는 법 (24) | 2019.05.04 |
Raspberry Pi에서 쉽게 코드 작성하는 방법(Sublime Text 3 사용) (4) | 2019.04.17 |
Raspberry Pi 3에 LAMP (Linux, Apache, MySQL, PHP) 설치하는 방법 (36) | 2018.09.06 |
Raspberry Pi 3에서 커널 모듈(kernel module) 프로그래밍 (3) | 2017.11.13 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!