yocto 上的 vSOMEIP 支持
vSOMEIP support on yocto
我正在开发一个依赖于 vSOMEIP 的组件,yocto 没有支持
对于 vSOMEIP,我正在尝试添加自己,以便我的组件可以使用它。
我创建了 recipes-vSOMEIP 配方,并复制了源代码。
我的 bb 图层是这样的
SECTION = "devel"
LICENSE = "CLOSED"
SRC_URI = "file://*"
S = "${WORKDIR}"
inherit cmake
FILES_${PN} = "${bindir}"
正在编译源代码,但无法安装它们。
Got Below 错误,正在打包
ERROR: vSOMEIP-1.0-r0 do_package: QA Issue: vSOMEIP: Files/directories were installed
but not shipped in any package:
/usr/etc
/usr/lib/libvsomeip.so.2.2.4
/usr/lib/libvsomeip-sd.so.2.2.4
/usr/lib/libvsomeip.so.2
/usr/lib/libvsomeip-sd.so.2
/usr/lib/cmake
/usr/lib/cmake/vsomeip
/usr/lib/cmake/vsomeip/vsomeipTargets-noconfig.cmake
/usr/lib/cmake/vsomeip/vsomeipConfig.cmake
/usr/lib/cmake/vsomeip/vsomeipConfigVersion.cmake
/usr/lib/cmake/vsomeip/vsomeipTargets.cmake
/usr/etc/vsomeip
/usr/etc/vsomeip/vsomeip-tcp-service.json
/usr/etc/vsomeip/vsomeip-tcp-client.json
/usr/etc/vsomeip/vsomeip-udp-client.json
/usr/etc/vsomeip/vsomeip.json
/usr/etc/vsomeip/vsomeip-udp-service.json
/usr/etc/vsomeip/vsomeip-local.json
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
vSOMEIP: 18 installed and not shipped files. [installed-vs-shipped]
ERROR: vSOMEIP-1.0-r0 do_package: Fatal QA errors found, failing task.
ERROR: vSOMEIP-1.0-r0 do_package: Function failed: do_package
您目前似乎只是安装 /usr/bin
本身。
尝试添加您需要的其他目录:
FILES_${PN} += " \
${bindir} \
${bindir}/* \
${libdir} \
${libdir}/* \
${sysconfdir} \
${sysconfdir}/vsomeip \
${sysconfdir}/vsomeip/*
"
我还认为 /usr/lib/cmake
下的所有内容都不打算安装。您应该在安装后通过添加
将其删除
do_install_append() {
rm -rf ${D}${libdir}/cmake
}
到菜谱
更新: @Anders 的回答可能是正确的。
您不应将 FILES_${PN} 设置为 =
如果您需要更改它,请使用 +=
。
在你的情况下,变量应该由你包含在 inherit cmake
中的 cmake class 正确设置
所以只需删除 FILES_${PN}
,一切应该仍然有效。
请删除行
FILES_${PN} = "${bindir}"
FILES_${PN}
的默认值应该足够了。永远不要重写该变量,除非您知道自己在做什么,而是在需要时附加到它。
Genivi Consortium 提供了 vSomeIP 的现成配方。请参考vSomeIP recipe
我正在开发一个依赖于 vSOMEIP 的组件,yocto 没有支持 对于 vSOMEIP,我正在尝试添加自己,以便我的组件可以使用它。 我创建了 recipes-vSOMEIP 配方,并复制了源代码。 我的 bb 图层是这样的
SECTION = "devel"
LICENSE = "CLOSED"
SRC_URI = "file://*"
S = "${WORKDIR}"
inherit cmake
FILES_${PN} = "${bindir}"
正在编译源代码,但无法安装它们。
Got Below 错误,正在打包
ERROR: vSOMEIP-1.0-r0 do_package: QA Issue: vSOMEIP: Files/directories were installed
but not shipped in any package:
/usr/etc
/usr/lib/libvsomeip.so.2.2.4
/usr/lib/libvsomeip-sd.so.2.2.4
/usr/lib/libvsomeip.so.2
/usr/lib/libvsomeip-sd.so.2
/usr/lib/cmake
/usr/lib/cmake/vsomeip
/usr/lib/cmake/vsomeip/vsomeipTargets-noconfig.cmake
/usr/lib/cmake/vsomeip/vsomeipConfig.cmake
/usr/lib/cmake/vsomeip/vsomeipConfigVersion.cmake
/usr/lib/cmake/vsomeip/vsomeipTargets.cmake
/usr/etc/vsomeip
/usr/etc/vsomeip/vsomeip-tcp-service.json
/usr/etc/vsomeip/vsomeip-tcp-client.json
/usr/etc/vsomeip/vsomeip-udp-client.json
/usr/etc/vsomeip/vsomeip.json
/usr/etc/vsomeip/vsomeip-udp-service.json
/usr/etc/vsomeip/vsomeip-local.json
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
vSOMEIP: 18 installed and not shipped files. [installed-vs-shipped]
ERROR: vSOMEIP-1.0-r0 do_package: Fatal QA errors found, failing task.
ERROR: vSOMEIP-1.0-r0 do_package: Function failed: do_package
您目前似乎只是安装 /usr/bin
本身。
尝试添加您需要的其他目录:
FILES_${PN} += " \
${bindir} \
${bindir}/* \
${libdir} \
${libdir}/* \
${sysconfdir} \
${sysconfdir}/vsomeip \
${sysconfdir}/vsomeip/*
"
我还认为 /usr/lib/cmake
下的所有内容都不打算安装。您应该在安装后通过添加
do_install_append() {
rm -rf ${D}${libdir}/cmake
}
到菜谱
更新: @Anders 的回答可能是正确的。
您不应将 FILES_${PN} 设置为 =
如果您需要更改它,请使用 +=
。
在你的情况下,变量应该由你包含在 inherit cmake
所以只需删除 FILES_${PN}
,一切应该仍然有效。
请删除行
FILES_${PN} = "${bindir}"
FILES_${PN}
的默认值应该足够了。永远不要重写该变量,除非您知道自己在做什么,而是在需要时附加到它。
Genivi Consortium 提供了 vSomeIP 的现成配方。请参考vSomeIP recipe