2018/08/09現在のAWS SDK for C++をRaspberry Pi 3Bでビルドした。
以下のURLに記載の通り、cmakeをやってmakeをやればOKと言う訳には行かなかったので共有する。
大きな問題点は「メモリが足りない」こと。
とにかく巨大なソースファイルが存在するため、それをコンパイルするためのメモリが全然足りない。
そして、SDメモリにスワップすると、ほぼハングアップ状態になるので実質使えない。
そこでやったことは以下の2つ。
- SDメモリのスワップファイルは止め、USB HDDにスワップファイルを作成する。
- スワップが発生しても耐えられるように巨大なソースファイルは分割する。
USB HDDには2GBのスワップファイルを作成した。
# swapoff /var/swap
# dd if=/dev/zero of=/media/pi/here-is-usb-hdd-mount-point/swapfile bs=1M count=2048
# mkswap /media/pi/here-is-usb-hdd-mount-point/swapfile
# swapon /media/pi/here-is-usb-hdd-mount-point/swapfile
以下のソースコードを概ね等分となるように分割した。
ソースコード | 行数 | 分割数 |
---|---|---|
aws-cpp-sdk-apigateway/source/APIGatewayClient.cpp | 4721 | 2 |
aws-cpp-sdk-cognito-idp/source/CognitoIdentityProviderClient.cpp | 3514 | 2 |
aws-cpp-sdk-ec2/source/EC2Client.cpp | 9961 | 4 |
aws-cpp-sdk-iam/source/IAMClient.cpp | 4679 | 2 |
aws-cpp-sdk-iot/source/IoTClient.cpp | 5513 | 2 |
aws-cpp-sdk-rds/source/RDSClient.cpp | 3466 | 2 |
aws-cpp-sdk-ssm/source/SSMClient.cpp | 3802 | 2 |
あとはAWSのドキュメントの通り、cmakeをやってmakeをやればビルドが完了できる。
ただし、24時間ほど掛かるのでそのつもりで作業して欲しい。