一个项目中的不同版本的 yocto
Different versions of yocto in one project
对于一个项目,我必须使用 sumo,因为它是供应商支持的最后一个版本。但是我也想使用一个包含 ROS () 的层,它具有以下兼容性:
LAYERSERIES_COMPAT_ros-layer = "rocko sumo thud warrior"
但是在 README.md 中它说需要:
## DEPENDENCIES ##
This layer depends on:
**openembedded-core**
URI: git://git.openembedded.org/openembedded-core
subdirectory: meta
branch: thud
revision: HEAD
**meta-openembedded (meta-oe)**
URI: git://git.openembedded.org/meta-openembedded
subdirectory: meta-oe
branch: thud
revision: HEAD
**meta-python** (since a6d7ba92645a112af358efd94ff3aa0c74985a51@meta-openembedded)
URI: git://git.openembedded.org/meta-openembedded
subdirectory: meta-python
branch: thud
revision: HEAD
**meta-multimedia** (since fe44ac167a2a76531af3519f3889fce92024567b@meta-openembedded)
URI: git://git.openembedded.org/meta-openembedded
subdirectory: meta-multimedia
branch: thud
revision: HEAD
当我将所有层与 sumo 一起使用时,ROS 层未启用:
错误:图层 'escape' 依赖于图层 'ros',但您的配置中未启用此图层
虽然我启用了它:
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
##OEROOT##/meta \
##OEROOT##/meta-poky \
##OEROOT##/meta-yocto-bsp \
##OEROOT##/meta-intel \
##OEROOT##/meta-aaeonc \
##OEROOT##/meta-openembedded/meta-oe \
##OEROOT##/meta-openembedded/meta-python \
##OEROOT##/meta-openembedded/meta-multimedia \
##OEROOT##/meta-ros \
##OEROOT##/meta-escape \
"
所以我想这是一个依赖关系的问题(meta-escape 是我的层,是需要 ROS 的层)。但是如果我使用 thud,bitbake 开始失败。
有没有办法使用同一层的两个不同版本?
又短又直:不。您必须确保这些层在版本方面是兼容的。这就是 LAYERSERIES_COMPAT
变量的全部意义所在。
如果某个层恰好不适用于您想要的版本,您可以随时更改条目并尝试,但可能 运行 会损坏。
祝你好运。
对于一个项目,我必须使用 sumo,因为它是供应商支持的最后一个版本。但是我也想使用一个包含 ROS () 的层,它具有以下兼容性: LAYERSERIES_COMPAT_ros-layer = "rocko sumo thud warrior"
但是在 README.md 中它说需要:
## DEPENDENCIES ##
This layer depends on:
**openembedded-core**
URI: git://git.openembedded.org/openembedded-core
subdirectory: meta
branch: thud
revision: HEAD
**meta-openembedded (meta-oe)**
URI: git://git.openembedded.org/meta-openembedded
subdirectory: meta-oe
branch: thud
revision: HEAD
**meta-python** (since a6d7ba92645a112af358efd94ff3aa0c74985a51@meta-openembedded)
URI: git://git.openembedded.org/meta-openembedded
subdirectory: meta-python
branch: thud
revision: HEAD
**meta-multimedia** (since fe44ac167a2a76531af3519f3889fce92024567b@meta-openembedded)
URI: git://git.openembedded.org/meta-openembedded
subdirectory: meta-multimedia
branch: thud
revision: HEAD
当我将所有层与 sumo 一起使用时,ROS 层未启用:
错误:图层 'escape' 依赖于图层 'ros',但您的配置中未启用此图层
虽然我启用了它:
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
##OEROOT##/meta \
##OEROOT##/meta-poky \
##OEROOT##/meta-yocto-bsp \
##OEROOT##/meta-intel \
##OEROOT##/meta-aaeonc \
##OEROOT##/meta-openembedded/meta-oe \
##OEROOT##/meta-openembedded/meta-python \
##OEROOT##/meta-openembedded/meta-multimedia \
##OEROOT##/meta-ros \
##OEROOT##/meta-escape \
"
所以我想这是一个依赖关系的问题(meta-escape 是我的层,是需要 ROS 的层)。但是如果我使用 thud,bitbake 开始失败。
有没有办法使用同一层的两个不同版本?
又短又直:不。您必须确保这些层在版本方面是兼容的。这就是 LAYERSERIES_COMPAT
变量的全部意义所在。
如果某个层恰好不适用于您想要的版本,您可以随时更改条目并尝试,但可能 运行 会损坏。
祝你好运。