Visual Studio 2017 설치 후 IoTivity 빌드 방법

최근 Github에서 개인 프로젝트로 진행 중인 IoT Platform인 Luna 에 Public Cloud 연동과 AI 기능을 추가하여 기능을 확장 중이다. 그리고 Embedded 개발자들이 쉽게 IoT Device를 개발할 수 있도록 도움을 주고 싶어 OCF 표준을 따르는 IoTivity 역시 Luna에 추가 중이라 Linux, macOS 및 Windows 환경에서 빌드 및 시험하고 있다.

IoTivity는 x86 Linux와 Raspberry Pi3에서는 쉽게 빌드하고 간단하게 시험 후 IoTivity 분석을 위해 Visual Studio 2017 환경에서 IoTivity 빌드를 시도 했는데 생각보다 쉽지가 않았다.

처음에는 VS2017 직접 솔류션 파일과 프로젝트 파일을 만들기도 했지만, 짧은 시간에 끝내기가 힘들어 우선 IoTivity Wiki에 있는 빌드 가이드를 따르기로 했다.

IoTivity Wiki를 통해 빌드 가이드 정보를 얻을 수 있지만 나름 시간을 투자해야 성공할 수 있었다. 그래서 VS2017 환경에서 다양한 시도를 통해 IoTivity 빌드를 성공하여 그 경험을 공유한다.

참고자료들

준비사항

  1. Visual Studio 2017 설치
  2. Visual C++ 2015 Build Tools 설치
  3. Github에서 IoTivity 클론 및 일부 파일 형식 변환
  4. Python27(32비트), Scons 및 7-Zip 설

1. VS2017 설치

먼저 Visual Studio 2017를 설치한다. IoTivity Wiki에서는 VS2015 기반으로 빌드 방법을 안내하고 있지만, 새로운 툴을 사용해야 개발자라는 느낌을 가질 수 있어서.. VS2017를 준비한다. ^^

2. Visual C++ 2015 Build Tools 설치

IoTivity Wiki에서는 VS2017 설치 때 옵션을 vs140 을 주면 된다고 하지만, 빌드에 문제가 발생하는 것 같다. 따라서 깔끔하게 Visual C++ 2015 Build Tools를 설치한다.

3. Github에서 IoTivity 클론 및 일부 파일 형식 변환

우선 아래 URL를 참고하여 IoTivity를 클론한다.
IoTivity 클론된 경로로 이동해서 /iotivity/resource/csdk/stack/include/internal/ocresource.h 열어 파일 형식을 유니코드로 저장한다. 

4. Python27(32비트), Scons 및 7-Zip 설치

IoTivity Wiki 가이드를 따라 Python27 32비트 버전, Scons 및 7-Zip를 설치하고, 시스템 PATH 환경 설정에 위 세개의 툴 설치 위치를 추가한다.

빌드

자! 이제 빌드를 해 보죠.

빌드는 IoTivity Wiki 가이드를 따른다. IoTivity 빌드는 Scons 툴을 사용하여 진행된다.

윈도우 시작버튼을 눌러 Visual Studio 2017 폴더에 있는 'Developer Command Prompt for 2017' 툴을 실행 후 다음과 같이 명령을 입력하면 빌드는 성공적으로 이뤄진다. 
  1. set vs140
  2. change the directory for iotivity repo
  3. iotivity build
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.13
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************

\>set vs140
VS140COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\

\> cd \git\iotivity
\git\iotivity>run build
...
[----------] Global test environment tear-down
[==========] 167 tests from 49 test cases ran. (3079 ms total)
[  PASSED  ] 167 tests.

  YOU HAVE 74 DISABLED TESTS

scons: done building targets.
Done

여러분들도 짧은 시간안에 빌드가 성공되기를 빕니다.

댓글

이 블로그의 인기 게시물

macOS가 갑자기 부팅이 되지 않을 경우 데이터 복구 또는 백업 방법

C++로 프로그래밍할 때 인자 또는 리턴 값으로 std::vector 등 STL 데이터 타입 처리하는 좋은 방법

Git 저장소를 병합하는 방법(How to merge repositories in Git)