【ESP32】Boost.asio を使ったソケット通信

ubuntu への boost のインストール

boost のパッケージがリポジトリにあるかどうか探した。

$ sudo apt-cache search boost

たくさん見つかった。おそらく最新版ではなく結構古いバージョンだと思われるが、標準でサポートされているのが安心。自分でビルドすると、バージョンアップが大変だから。

インストールの仕方をググり、以下のようにインストールした。

$ sudo apt install libboost-dev libboost-tools-dev

 参考URL:

boostのインストール - C++入門

 boost::asio を使った同期通信

boostjp.github.io

Boost.Asioによる同期接続処理 - C++入門

boost のチュートリアルを発見。

Tutorial - 1.63.0

 

ビルドしてみると、

上記のコマンドでは Boost:asio はインストールされないことがわかった。さらにググったところ、

$ sudo apt search libasio-dev

libasio-dev/xenial,xenial 1:1/10.6-3 all

 パッケージが存在することがわかったので

 $ sudo apt install libasio-dev

でインストールした。

 これでもまだリンクエラーになった。

$ g++ -Wall client_2.cpp 

libboost_system の unreference deference エラーになる。ググったところ、

 -lboost_system をつけるという記事を発見。これでもだめで、さらに

$ ln -s /usr/lib/x86_64-linux-gnu/libboost_system.so.1.58.0 /usr/lib/x86_64-linux-gnu/libboost_system.so

$ g++ -Wall client_2.cpp -L/usr/lib/x86_64-linux-gnu -lboost_system

 

これでリンクエラーがなくなった。