PlatformIOに検索しても出てこないライブラリを追加する方法

具体的には、これを試してみたいので、トライ。

直接インストール

PlatformIOのLibrariesの画面で、”LeifESPBaseHomie”を検索するも、見つからず・・・

とりあえず、サンプルをコンパイル

もしかしたら、動くかもしれないので(人任せ・・・)、新しいプロジェクトを作って、サンプルプロジェクトのコピーをコードして、コンパイル。・・もちろんエラー。LeifHomieLibがないと言っているけど、これは、LeifESPBaseHomieが依存しているライブラリのはず。

検索画面で探してみると、見つかるので、インストール。

今度は、LeifBaseHomieが依存しているAsyncMqttClientが無いとエラー。

結局、自分でGithubを調べて依存関係のある以下のライブラリをインストール。

  • AsyncMqttClient
  • ESPAsyncTCP

手でコピー?

下位のライブラリは揃ったけど、使いたかったLeifESPBaseHomieのファイルは、手でコピーしてくる必要があるかも。
もともとシンプルなライブラリ(おそらく2つの関数を用意するだけ)なので、それでも良いかも。

とりあえず動かしたい

上でも書いたけど、エラーを調べているうちに、大抵の便利な機能は、下位のライブラリから提供されていることに気づいたので、最終的には、LeifBaseHomieのヘッダとコードをローカルにコピーしました。

どこにコピーするか

結局、この方法が正解みたいです。
プロジェクトのフォルダ内に、”lib”フォルダが用意されていて、その中に”ライブラリ名”のフォルダを作成して入れておけば良いっぽい。
もちろん、includeパスにも入れてくれます。

注意
ライブラリコンパイルのエラーが消せずに少しライブラリコードを変更しました。
ライブラリのフォルダ階層では、.cppから1つ上の階層に.hが見つかるはずなんだけど、どういうわけか見つからず・・・
同名のファイルがあったために、グローバルな環境に置くこともできず、とりあえずコードを修正しました。

lib_depsとの違い

Platformio.iniファイルにlib_depsを追加して、プロジェクトローカルにライブラリを追加することもできるけど、コピーされる場所は、libフォルダではなく、.pioフォルダ内になるみたい。そのまま動けば問題ないけど、自分で修正する必要がある時は、libフォルダ内にコピーして、修正するほうが便利な気がする。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です