OpenEmbeddedを使用してDTNを構築しようとしています。残念ながら、DTN は Tcl 8.3 または 8.4 と DB 4.2、4.3、4.4 または 4.5 を使用しますが、bitbake は Tcl 8.5 と DB 5.0 を使用しています。
OpenEmbedded レシピ ディレクトリには、他のファイルとともに以下が存在します。
デシベル/
デシベル/db_4.3.29.bb
デシベル/db4-native.incデシベル/db3-native_3.2.9.bb デシベル/db_5.0.21.bb デシベル/db3-3.2.9 デシベル/db4.inc
デシベル
/ ファイル デシベル/デシベル-native_4.3.29.bb db/db3_3.2.9.bb db/db-native_5.0.21.bb db/db5.inc tcltk/ tcltk/tk tcltk/tk_8.4.19.bb tcltk/tcl-native_8.4.19.bb tcltk/ tk-8.5.8 tcltk/tk-native_8.4.19.bb tcltk/tk_8.5.8.bb tcltk/ファイル tcltk/tcl tcltk/tcl-8.5.8 tcltk/tcl_8.5.8.bb tcltk/tcl_8.4.19.bb `
bitbake が dtn を構成していたある時点で、次のことが起こります。
| | pow を含むライブラリをチェックしています... -lm
| dlopen を含むライブラリをチェックしています... -ldl
| | | configure: tcl インストールの確認 (バージョン 8.4)
| /opt/OpenEmbedded/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi usr/include で tcl.h (バージョン 8.4) をチェックしています... no
|
| | configure: tcl インストールの確認 (バージョン 8.3)
| /opt/OpenEmbedded/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include で tcl.h (バージョン 8.3) をチェックしています... いいえ
| configure: エラー: 使用可能な tcl.h が見つかりません
注: タスクが失敗しました: /opt/OpenEmbedded/build/tmp/work/armv7a-angstrom-linux-gnueabi/dtn-2.5.0-r5/temp/log.do_configure. 27117
ERROR: TaskFailed イベント例外、中止します
エラー: /opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb do_configure のビルドに失敗しました
エラー: タスク 11 (/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb, do_configure) に失敗しました
注: タスク概要: 897 個のタスクを試行しましたが、そのうち 883 個は再実行する必要がなく、1 個は失敗しました。
エラー: '/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb' が失敗しました '
これを解決するために、dtn_2.5.0.bb に移動し、--with-tclver=8.5 を追加しました。
DBでも同じことが起こり、もう一度解決するために同じことをしました。
しばらくして、bitbake をコンパイルすると、次のことが起こりました。
| | storage/BerkeleyDBStore.cc:35 から含まれるファイル:
| storage/BerkeleyDBStore.h:31:2: エラー: #error "Berkeley DB メジャー バージョン 4 を使用する必要があります" | /opt/OpenEmbedded/build/tmp/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/../../../.. から含まれるファイル/
arm-angstrom-linux-gnueabi/include/c++/4.3.3/ext/hash_set:64,
| ストレージから/../util/StringUtils.h:39,
| storage/DurableStore.h:35 から
| ストレージから/BerkeleyDBStore.h:39,
| storage/BerkeleyDBStore.cc:35 から:
| | /opt/OpenEmbedded/build/tmp/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/../../../../arm-angstrom -linux-gnueabi/include/c++/4.3.3/backward/backward_warning.h:33:2: 警告: 警告 このファイルには、少なくとも 1 つの非推奨または時代遅れのヘッダーが含まれており、将来予告なしに削除される可能性があります。
代わりに、同等の機能を持つ非推奨でないインターフェースを使用してください。置換ヘッダーとインターフェースのリストについては、backward_warning.h ファイルを参照してください。この警告を無効にするには、-Wno-deprecated を使用します。
| | storage/BerkeleyDBStore.cc: メンバー関数内 'virtual int oasys::BerkeleyDBStore::init(const oasys::StorageConfig&)':
| storage/BerkeleyDBStore.cc:129: 警告: 'void ( )(const charからの変換が無効です, char*)' から 'void ( )(const DB_ENV , const char*, const char*)'
| storage/BerkeleyDBStore.cc:187: エラー: 'DB_LOG_AUTOREMOVE' はこのスコープで宣言されていません | make 1 : *** [ストレージ/BerkeleyDBStore.o] エラー 1
| make 1 : ディレクトリ ``/opt/OpenEmbedded/build/tmp/work/armv7a-angstrom-linux-gnueabi/dtn-2.5.0-r5/dtn-2.5.0/oasys'を離れます
| make: * [oasys] エラー 2
| 致命的: oe_runmake が失敗しました
注: タスクが失敗しました: /opt/OpenEmbedded/build/tmp/work/armv7a-angstrom-linux-gnueabi/dtn-2.5.0-r5/temp/log.do_compile.5339
エラー: TaskFailed イベント例外、中止します
エラー: /opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb do_compile のビルドに失敗しました
エラー: タスク 13 (/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb, do_compile) が失敗しました
注: タスクの概要: 913 個のタスクを試行しましたが、そのうち 913 個は再実行する必要がなく、1 個は失敗しました。
エラー: '/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb' が失敗しました '
それで、私が選択したバージョンを使用するようにbitbakeまたはOpenEmbeddedに「伝える」方法はありますか?