본문 바로가기

카테고리 없음

AWS IOT SDK v2 C++ SDK BUILD 32/64bit ( MQTT )

AWS는 iot device sdk가 C++ v2, C++ v1, embedded C, Java, Javascript, python을 지원한다.

설치에서 중요한 것은, 버젼 호환이다. 항상 본인들이 사용한 테스트환경보다는 높은 버젼을 사용하라고 하지만, 기왕이면 정확하게 설치하는 게 더 좋을 것 같다.

 

또한, 64bit나 32bit로 빌드하는 방법은 똑같은데, 64에서 32bit build 방법은 복잡해서 나같은 경우, 동일한 architecutre의 기기를 찾아서 빌드한 다음 executable 파일만 옮겨서 사용했다.

 

궁금한 게 있을지 모르겠지만 메일로 보내주면 더 빨리 읽을 수 있다.

kangjik94@naver.com

초기 세팅

  • 세팅
    • sudo apt-get update
    • sudo apt-get upgrade
    • sudo apt-get install vim -y
    • sudo apt-get install git -y

GCC/G++ 설치

  • 설치 과정aws-v1 min : 5+build-essential 한 뒤에 4.8로 낮춰주는 걸로 진행하였음. 5.0은 설치하는 방법을 못찾았지만, 왠만하면 5로 진행하는 것을 추천
    • sudo apt update
    • sudo apt-get install build-essential
    • gcc --verison
      • 현재 8이상일 것으로 예상
    • g++ --version
      • 현재 8 이상으로 예상
    • sudo apt-get update
    • sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ trusty main'
    • sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ trusty universe'
    • sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ trusty-updates universe'
    • sudo apt install gcc-4.8 g++-4.8 -y
      • 없으면 5나 7 선택. 9는 피해야함
    • sudo update-alternatives --display gcc
      • 등록 해줘야함
      • sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 1
      • sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 2
      • sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 1
      • sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 2
    • sudo update-alternatives --config gcc
      • 설치한 것 확인
    • sudo update-alternatives --config g++
      • 설치한 것 확인
    • gcc --version
      • gcc 버젼 확인할 것
    • g++ --version
      • g++ 버젼 확인할 것
  • aws-sdk : 4.9+
  • aws-v2 min : 4.8+

Clang 설치

  • Clang 설치v1 min : 3.8+왠만하면 3.9 설치할 수 있도록 해야함
    • sudo apt-get update
    • sudo apt-get install clang-3.9
      • 없으면 위에 repo를 추가해줘야한다. deb 어쩌구
    • /usr/bin/clang-3.9 —version
  • aws-sdk에서는 3.3+
  • v2 min : 3.9+

CMake 설치

  • CMake 설치****
  • **sdk : 3.2~3.21
    • wget https://cmake.org/files/v3.2/cmake-3.2.0.tar.gz
    • tar -xvzf cmake.3.2.0.tar.gz
    • cd cmake 폴더
    • ./bootstrap —prefix=/usr/local
    • make
    • sudo make install
    • cmake --version
      • 없다고 나오면,
      • vi ~./bash_profile
      • PATH=/usr/local/bin:$PATH:$HOME/bin
  • 3.2.0으로 진행할 것임
  • v2 min : 3.1+
  • AWS SDK에서 3.2~3.21 사이로 반드시 설치히라고 한다.

AWS Client 설치

  • AWS Client 설치
    • sudo apt install awscli
      • python-pip으로 설치하는 거 아님
    • aws configure
      • AKIAQG5PZF4LL6AWDNPW
      • V4n5I8VfZejZ/7GrF/zWLvx9o55mdcaH/TgbzxkX
      • ap-northeast-2
      • json
      • 순서대로 입력
      • ./aws/ 폴더 안에 있음
  • 직접 코드에 입력하거나 했던 과거와 다르게, cli를 설치해서 진행해도 상관없었음. 나중에 코드로 진행해도 무관할 듯

OpenSSL 설치

  • OpenSSL 설치 ( 안해도 되니까 하지말자)sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev $ tar xvf openssl-1.1.1g.tar.gz$ ./Configure linux-x86_64 --prefix=/usr
    • 그냥 ./config 하면 자동
    $ makeopenssl version 으로 버젼 확인
  • $ sudo make install
  • $ cd openssl-1.1.1g
  • v1 : min : openssl 1.1.0 / libssl-dev 1.1.0
  • 이미 굳이 설치할 필요가 없었다.

AWS IOT SDK V2 C++ 빌드

  • AWS IOT SDK V2 C++ 설치
    • sudo apt install git -y
    • mkdir ~/sdk-cpp-workspace
    • cd ~/sdk-cpp-workspace
    • git clone --recursive https://github.com/aws/aws-iot-device-sdk-cpp-v2.git
    • mkdir aws-iot-device-sdk-cpp-v2-build
    • cd aws-iot-device-sdk-cpp-v2-build
    • cmake -DCMAKE_INSTALL_PREFIX="<absolute path sdk-cpp-workspace dir>" -DCMAKE_BUILD_TYPE="<Release|RelWithDebInfo|Debug>" ../aws-iot-device-sdk-cpp-v2
      • 현재 오류때문에 DCMAKE_BUILD_TYPE=Release로 하자
    • cmake --build . --target install

Sample 코드 빌드

  • Sample 코드 실행
    • 해당 폴더 들어가서 main.cpp 있는 곳으로 간다.
    • mkdir build
    • cd build
    • sudo vim ../CMakeList.txt
      • set(CMAKE_THREAD_LIBS_INIT "-lpthread")
        • 소문자 알파벳 엘 임. 숫자 1 이나 알파벳 i 아님.
      • set(CMAKE_HAVE_THREADS_LIBRARY 1)
      • set(CMAKE_USE_WIN32_THREADS_INIT 0)
      • set(CMAKE_USE_PTHREADS_INIT 1)
      • set(THREADS_PREFER_PTHREAD_FLAG ON)
        • 추가할 것 
    • cmake -DCMAKE_PREFIX_PATH=”/home/awsmqtt/sdk-cpp-workspace/” -DCMAKE_BUILD_TYPE=”<Release|RelWithDebInfo|Debug>” ..
      • 여기서 에러나면 pthread 문제
      • 어떤 폴더에서 해도 에러나기때문에 항상 sudo apt-get update 한번씩 해줄것
      • Release로만 수행할 것
    • cmake --build . --config “<Release|RelWIthDebInfo|Debug>”
    • 그리고 만들어진 실행파일 실행
  •