Ask Your Question
0

[HOWTO] Visual C++ for IoT Development 를 이용하여 아이펀엔진 개발하기.

asked 2016-11-30 17:34:19 +0900

inkeun.kim gravatar image
  1. 소개

마이크로소프트에서 안드로이드 개발을 위해 비쥬얼 스튜디오와 gdb의 연동을 지원하기 시작하면서, 리눅스 원격 gdb 디버깅 지원도 강화해나가고 있습니다. 아직 실험적인 단계이긴 하지만, Visual C++ for IoT Development 와 Visual C++ for Linux Development 같은 제품을 갤러리에 출시하며 진행에 박차를 가하고 있군요. 비록 당장 쓰기에는 Visual GDB만큼 강력하고 유연하지는 않습니다만, 마이크로소프트에서 향후 점점 더 지원을 강화해 나간다면, 다양한 방법으로 윈도우 환경에서도 아이펀엔진 개발을 수월하게 진행할 수 있을 것으로 생각합니다. 그러므로 이 제안 문서는 실 사용을 위한 내용 보다는 현재 이런 기능이 가능하다는 수준의 정리가 될 것입니다.

  1. 환경
  • 아이펀 엔진 구동과 개발에 사용할 리눅스 머신 (+ssh, gdb)
  • 실제 개발에 사용할 윈도우 머신 Visual Studio 15 Visual C++ for IoT Developmen putty, plink, pscp, puttygen
  1. 적용 방법

개발에 사용할 윈도우 머신에 상기 링크한 프로그램들을 설치합니다.

putty.exe, plink.exe, pscp.exe, puttygen.exe들은 다운로드 받아 하나의 폴더에 모아 놓고, 윈도우 PATH에 등록합니다.

비쥬얼 스튜디오에서 Makefile Project(GDB)로 새로운 프로젝트를 생성합니다.

프로젝트를 생성하면 처음 나오는 Getting Started 화면을 한번 꼼꼼히 읽어보면 많은 도움이 됩니다. 아래 내용은 해당 문서와 상당부분 겹치기도 합니다.

이제 프로젝트 설정에서 디버깅과 NMake두 탭의 내용을 설정할 것입니다. 그 전에 리눅스 머신과의 통신을 위해 key를 생성해야합니다. puttygen.exe를 실행하고, Generate 버튼을 클릭합니다.

열심히 마우스를 움직여 랜덤키를 생성시키고, public key와 private key를 저장합니다.

추후 사용할 가능성이 높으므로, 메뉴에서 Conversions > Export OpenSSH Key도 실행해서 만들어둡니다.

이제 서버에 접속합니다. 서버에 방금 만든 key를 등록합니다. 홈디렉토리에 .ssh 디렉토리가 존재하지 않는다면, 다음을 명령어를 배쉬쉘에서 수행합니다. mkdir ~/.ssh touch ~/.ssh/authorized_keys chmod 0700 ~/.ssh chmod 0600 ~/.ssh/authorized_keys이미 .ssh디렉토리와 authorized_key파일이 존재한다면, 위 작업은 수행하지 않아도 됩니다.

이제 위에서 저장한 퍼블릭 key를 텍스트에디터로 열고, 내용을 클립보드에 복사해 둡니다. (컨트롤+c) 그리고 서버에 접속한 쉘에서 다음을 실행합니다. nano ~/.ssh/authorized_keys위 명령어를 실행하고 서버 접속화면에 우클릭하면, 자동으로 새로운 퍼블릭 key가 등록됩니다.

제대로 접속이 되는지 확인해 보려면, 윈도우에서 다음의 명령어를 실행해 보세요.

plink.exe -i private-key-filename user@host

private-key-filename: 위에서 puttygen.exe로 저장한 개인 key의 파일 이름(윈도우 환경) user, host: 리눅스 머신에서 사용하는 계정명과 호스트 주소

key를 생성할 때 지정한 비밀번호로 로그인이 된다면, 정상적으로 설정된 것입니다.

이제 리눅스 서버에서 프로젝트를 생성하고, makefile을 사용하도록 빌드 환경을 구축합니다.

 funapi_initiator test_project
 test_project-source/setup_build_environment --type=makefile

일단 한번 빌드를 합니다. cd test_project-build/debug make

이제 LD_LIBRARY_PATH에 빌드 타겟 디렉토리의 src를 추가해야합니다. VisualGDB에서는 따로 옵션이 있지만, 아직 마이크로소프트의 플러그인에서는 정식으로 지원하지 않고 있습니다.

우분투의 경우 ldconfig를 사용하는 것을 권장하고 있습니다.

cd /etc/ld.so.conf
sudo vi funapi.conf

funapi.conf 파일의 내용은 위와 같이 빌드타겟 디렉토리의 src디렉토리로 하면 됩니다. (ex. /home/username/test_project-build/debug/src)

CentOS에서는 홈디렉토리의 .bashrc나 .profile을 수정하면 됩니다.

 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/username/text_project-build/debug/src

다음엔 프로젝트의 source파일들을 윈도우 머신으로 복사해옵니다.

윈도우 머신 프로젝트 폴더에 source폴더를 생성하고, 리눅스 머신의 test_project-source의 내용을 복사해옵니다.

 pscp.exe -r -i c:\ssh\username.ppk username@my-own-server-addr:/home/username/test_project-source/*      c:\project\test_project\source\

비쥬얼 스튜디오로 돌아와서, 프로젝트 속성의 디버깅 탭을 수정합니다.

Remote Host Name: 리눅스 머신의 주소를 지정합니다. (192.168.0.xx 등등) Remote User Name: 리눅스 머신에서 사용하는 계정 명을 지정합니다. Private Key: PuttyGen.exe로 생성한 개인 key의 경로를 지정하고, 뒤에 -pw [비밀번호]를 지정합니다. Secure Shell Excutable: plink.exe를 지정합니다. (윈도우 ... (more)

edit retag flag offensive close merge delete

5 answers

Sort by » oldest newest most voted
0

answered 2016-11-30 17:34:27 +0900

inkeun.kim gravatar image

DK.Moon commented · 2016-06-13 AM 08:40

헐. 언제 또 이런 문서를.. 유용한 정보 감사합니다!

edit flag offensive delete link more
0

answered 2016-11-30 17:34:32 +0900

inkeun.kim gravatar image

minwoo.seok commented · 2016-06-13 AM 08:42

좋은 정보 감사합니다.

edit flag offensive delete link more
0

answered 2016-11-30 17:34:38 +0900

inkeun.kim gravatar image

seunghyun commented · 2016-06-13 AM 08:55

좋은 정보 감사합니다.

edit flag offensive delete link more
0

answered 2016-11-30 17:34:43 +0900

inkeun.kim gravatar image

steve.lee commented · 2016-06-27 PM 12:10

Visual Studio Code 로도 할 수 있을까요?

edit flag offensive delete link more
0

answered 2016-11-30 17:34:49 +0900

inkeun.kim gravatar image

Carlos commented · 2016-06-27 PM 11:20

설명하고 있는 플러그인은 Visual Studio 2015만 지원하는 제품입니다. Visual Studio Code에서도 비슷한 연동이 가능한지는 알아보도록 하겠습니다.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2016-11-30 17:34:19 +0900

Seen: 69 times

Last updated: Nov 30 '16