我正在尝试使用DTN构建OpenEmbedded。不幸的是,DTN使用TCL8.3或8.4和DB4.2、4.3、4.4或4.5,但bitbake使用的是TCL8.5和DB5.0。
在OpenEmbedded菜谱目录中,除其他文件外,还存在:
db/ db/db_4.3.29.bb db/db4-native.inc db/DB3-本机_3.2.9.bb db/db_5.0.21.bb db/db3-3.2.9 db/db4.inc 数据库/文件 db/db-本机_4.3.29.bb db/db3_3.2.9.bb db/db-本机_5.0.21.bb db/db5.inc tcltk/ tcltk/tk tcltk/tk_8.4.19.bb tcltk/tcl-本机_8.4.19.bb tcltk/tk-8.5.8 tcltk/tk-本机_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 \x\x{e76f}配置:检查是否安装了tcl (8.4版) 在/opt/OpenEmbedded/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi usr/include中检查tcl.h (版本8.4)。不是 | @ configure:检查tcl安装情况(8.3版) 在/opt/OpenEmbedded/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include...中检查tcl.h (版本8.3)不是 配置:错误:找不到可用的tcl.h 注意:任务失败: /opt/OpenEmbedded/build/tmp/work/armv7a-angstrom-linux-gnueabi/dtn-2.5.0-r5/temp/log.do_configure.27117 错误: 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=8.5。
DB也发生了同样的事情,为了再次解决这个问题,我做了同样的事情。
过了一段时间,当bitbake正在编译时,发生了以下情况:
在存储/BerkeleyDBStore.cc:35中包含的文件: H:31:2: error:#error “必须在/opt/OpenEmbedded/build/tmp/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/../../../../包含的文件中使用伯克利DB主版本4"” arm-angstrom-linux-gnueabi/include/c++/4.3.3/ext/hash_set:64, /./util/StringUtils.h:39, 从仓库/DurableStore.h:35, 从存储处/BerkeleyDBStore.h:39, 从存储处/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:警告:警告此文件至少包含一个废弃或过时的标题,它们可能在以后的某个日期被删除而不需要进一步通知。 请使用具有同等功能的非推荐界面。有关替换头和接口的列表,请参阅文件backward_warning.h。若要禁用此警告,请使用-Wno-取消推荐。 In :成员函数中的虚拟int oasys::BerkeleyDBStore::init(const oasys::StorageConfig&): @ storage/BerkeleyDBStore.cc:129:警告:从'void ()(const char,char*)‘到'void ()(const DB_ENV,const char*,const char*)’的转换无效。 in :187: error:'DB_LOG_AUTOREMOVE‘在此作用域中未声明:使1:*1/BerkeleyDBStore.o错误1 @ make1:离开目录1 * 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‘失败
那么,有没有办法“告诉”比特贝克或OpenEmbedded使用我选择的版本?
发布于 2011-06-22 05:18:20
在BOM中指定包的版本。
https://stackoverflow.com/questions/3871208
复制相似问题