私はYocto SDKを提供して、埋め込み対象のアプリケーションをクロスビルドします。アプリケーション自体はCMakeを使用して構築されています。 SDKセットアップスクリプトには、クロスコンパイラ、sysrootなどの場所のような多くの環境変数が用意されています。Yocto SDK with cmakeツールチェインファイル
しかし、最近、アプリケーションはBoostライブラリ(CMakeLists.txtのコマンドfind_package(Boost REQUIRED)
)に依存しています。 CMakeは、SDKのsysrootにインストールされていてもライブラリを見つけることができないという苦情を受けています。しかし、私がYoctoでアプリケーションを直接ビルドすると、うまく動作します。
若干の研究の結果、Yoctoがtoolchain.cmake
というファイルを生成し、これがcmakeコールに追加されていることが判明しました。このファイルでは、変数CMAKE_FIND_ROOT_PATH
が設定されています。これは、CMakeがライブラリを探す必要があります。このようなツールチェーンファイルを使用して、SDKを使用してビルドすることもできます。
今、私はYoctoがSDKでこのようなツールチェーンファイルを書き出すためのメカニズムを提供しているのだろうかと思います。あるいは、SDKがSDKビルドホストに直接ツールチェーンファイルを自動的に作成するためのスクリプトなどを提供している場合。
SDKのユーザーにツールチェインファイルを手動で作成してcmakeコールに追加するように伝えるだけでいいですか?
アンダーズさんに感謝しています。初めて私を助けてくれるわけではありません。 –
ちょうどもう1つの質問 - 'bitbake meta-ide-support'を使ってビルドするときにこのファイルを作ることも可能ですか? 'TOOLCHAIN_HOST_TASK'を設定するファイル' meta-ide-support.bbappend'を作成しようとしましたが、何もしないようです。 –
'meta-ide-support'を試したことはありません。それはツールチェインをビルドしますか?それ以外は 'TOOLCHAIN_HOST_TASK'は動作しません。 'meta-ide-support'の代わりにSDK-buildに追加してみませんか? – Anders