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/ 폴더 안에 있음
- sudo apt install awscli
- 직접 코드에 입력하거나 했던 과거와 다르게, cli를 설치해서 진행해도 상관없었음. 나중에 코드로 진행해도 무관할 듯
OpenSSL 설치
OpenSSL 설치 ( 안해도 되니까 하지말자)sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev- ~~https://www.openssl.org/source/old/1.1.0/ 에서 1.1.0 아무 버젼 다운로드~~
tar -xvf openssl-1.1.1i.tar.gzcd openssl-1.1.0
$ tar xvf openssl-1.1.1g.tar.gz$ ./Configure linux-x86_64 --prefix=/usr그냥 ./config 하면 자동
$ makeopenssl version 으로 버젼 확인$ sudo make install$ cd openssl-1.1.1gv1 : 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)
- 추가할 것
- set(CMAKE_THREAD_LIBS_INIT "-lpthread")
- 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>”
- 그리고 만들어진 실행파일 실행