Yocto 生成的 nativesdk-cmake SDK 不完整
Yocto generated nativesdk-cmake SDK is incomplete
在过去的几天里,我一直在尝试使用 Yocto Project 生成可行的 CMake SDK。我正在尝试根据下面给出的图像文件生成 SDK:
#To build SDK, use bitbake meta-toolchain
DESCRIPTION = "Embeddev-LXDE image."
LICENSE="CLOSED"
IMAGE_INSTALL = "packagegroup-core-boot \
packagegroup-core-x11 \
packagegroup-lxde-base \
kernel-modules \
"
IMAGE_INSTALL_append = " nano git cmake qtbase qtchooser dbus packagegroup-core-ssh-openssh xterm"
#Framebuffer driver for tft
IMAGE_INSTALL_append = " xf86-video-fbdev"
IMAGE_INSTALL_append = " apt dpkg sudo tzdata glibc-utils localedef networkmanager pointercal xinit xkeyboard-config base-passwd liberation-fonts pkgconfig"
IMAGE_INSTALL_append = " wiringpi"
#Maybe consider connman instead of networkmanager
#vc-graphics is problematic with userland..
inherit populate_sdk
## SDK stuff, to build sdk use bitbake rpi-embeddev-lxde-image -c populate_sdk
# Add all static packages: SDKIMAGE_FEATURES += "staticdev-pkgs"
SDKIMAGE_FEATURES += "staticdev-pkgs"
SDKIMAGE_FEATURES += "dev-pkgs"
TOOLCHAIN_TARGET_TASK_append = " wiringpi-dev"
TOOLCHAIN_HOST_TASK_append = " nativesdk-cmake"
##
inherit distro_features_check
REQUIRED_DISTRO_FEATURES = "x11"
IMAGE_LINGUAS ?= " "
LICENSE = "MIT"
export IMAGE_BASENAME = "rpi-embeddev-lxde-image"
inherit core-image
ENABLE_SPI_BUS = "1"
ENABLE_I2C = "1"
# qtwebengine qtwebkit ...
do_image_prepend() {
}
我使用 bitbake rpi-embeddev-lxde-image -c populate_sdk
创建我的 SDK。
我想描述确切的问题。问题是 nativesdk-cmake
没有正确安装在 SDK 中。 Cmake 3.10.2 配方给出:
do_install_append_class-nativesdk() {
mkdir -p ${D}${datadir}/cmake
install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/
mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh
}
FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}"
FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION}"
FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}"
BBCLASSEXTEND = "nativesdk"
追本溯源,看到应该创建的cmake/
目录创建在:
/home/<user>/poky/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-cmake/3.10.2-r0/image/opt/poky/2.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/cmake/
然而,不幸的是,当我将 SDK 安装到 /opt
时,这个 cmake 目录在 /opt/poky/2.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/
中无效 - 实际需要它的地方。
关于如何正确生成 SDK,我是否需要了解或做任何其他事情?
我真的被困在这里非常感谢任何帮助。
提前致谢。
编辑:我将 TOOLCHAIN_TASK
语句移至 layer.conf 并使用了 bitbake meta-toolchain
,但也没有用。
EDIT2:我将 cmake 3.6 版与 PREFERRED_PROVIDER_cmake = "3.6.1"
一起使用,但也没有用。
通过对每一层和 poky 本身使用一个版本(我使用 "morty",而不是 "master branch")解决了问题。这显然很重要。
即将发布的 Yocto Project 2.5 Sumo 似乎存在错误。这里,sysroots/x86_64-chargestorm-linux/usr/share/cmake/OEToolchainConfig.cmake
好像省略了。
临时解决办法是添加
TOOLCHAIN_HOST_TASK += "nativesdk-cmake-dev"
是的,使用发行版总是有帮助的,尤其是当您刚接触某个项目时。请记住始终对所有包含的层使用相同的发布分支。就个人而言,我不会开始基于 Morty 的新项目,Morty 是 1.5 年前在撰写本文时发布的,因为它可能很快就会失去官方 Yocto 项目支持。
顺便说一句,它似乎仍然是相扑中的一个错误(或者这在这一点上是错误的功能......?)。刚被这个...解决方法看起来与描述的相同。
(注意:这个是这个时间点的发布... X-D)
在过去的几天里,我一直在尝试使用 Yocto Project 生成可行的 CMake SDK。我正在尝试根据下面给出的图像文件生成 SDK:
#To build SDK, use bitbake meta-toolchain
DESCRIPTION = "Embeddev-LXDE image."
LICENSE="CLOSED"
IMAGE_INSTALL = "packagegroup-core-boot \
packagegroup-core-x11 \
packagegroup-lxde-base \
kernel-modules \
"
IMAGE_INSTALL_append = " nano git cmake qtbase qtchooser dbus packagegroup-core-ssh-openssh xterm"
#Framebuffer driver for tft
IMAGE_INSTALL_append = " xf86-video-fbdev"
IMAGE_INSTALL_append = " apt dpkg sudo tzdata glibc-utils localedef networkmanager pointercal xinit xkeyboard-config base-passwd liberation-fonts pkgconfig"
IMAGE_INSTALL_append = " wiringpi"
#Maybe consider connman instead of networkmanager
#vc-graphics is problematic with userland..
inherit populate_sdk
## SDK stuff, to build sdk use bitbake rpi-embeddev-lxde-image -c populate_sdk
# Add all static packages: SDKIMAGE_FEATURES += "staticdev-pkgs"
SDKIMAGE_FEATURES += "staticdev-pkgs"
SDKIMAGE_FEATURES += "dev-pkgs"
TOOLCHAIN_TARGET_TASK_append = " wiringpi-dev"
TOOLCHAIN_HOST_TASK_append = " nativesdk-cmake"
##
inherit distro_features_check
REQUIRED_DISTRO_FEATURES = "x11"
IMAGE_LINGUAS ?= " "
LICENSE = "MIT"
export IMAGE_BASENAME = "rpi-embeddev-lxde-image"
inherit core-image
ENABLE_SPI_BUS = "1"
ENABLE_I2C = "1"
# qtwebengine qtwebkit ...
do_image_prepend() {
}
我使用 bitbake rpi-embeddev-lxde-image -c populate_sdk
创建我的 SDK。
我想描述确切的问题。问题是 nativesdk-cmake
没有正确安装在 SDK 中。 Cmake 3.10.2 配方给出:
do_install_append_class-nativesdk() {
mkdir -p ${D}${datadir}/cmake
install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/
mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh
}
FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}"
FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION}"
FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}"
BBCLASSEXTEND = "nativesdk"
追本溯源,看到应该创建的cmake/
目录创建在:
/home/<user>/poky/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-cmake/3.10.2-r0/image/opt/poky/2.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/cmake/
然而,不幸的是,当我将 SDK 安装到 /opt
时,这个 cmake 目录在 /opt/poky/2.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/
中无效 - 实际需要它的地方。
关于如何正确生成 SDK,我是否需要了解或做任何其他事情?
我真的被困在这里非常感谢任何帮助。
提前致谢。
编辑:我将 TOOLCHAIN_TASK
语句移至 layer.conf 并使用了 bitbake meta-toolchain
,但也没有用。
EDIT2:我将 cmake 3.6 版与 PREFERRED_PROVIDER_cmake = "3.6.1"
一起使用,但也没有用。
通过对每一层和 poky 本身使用一个版本(我使用 "morty",而不是 "master branch")解决了问题。这显然很重要。
即将发布的 Yocto Project 2.5 Sumo 似乎存在错误。这里,sysroots/x86_64-chargestorm-linux/usr/share/cmake/OEToolchainConfig.cmake
好像省略了。
临时解决办法是添加
TOOLCHAIN_HOST_TASK += "nativesdk-cmake-dev"
是的,使用发行版总是有帮助的,尤其是当您刚接触某个项目时。请记住始终对所有包含的层使用相同的发布分支。就个人而言,我不会开始基于 Morty 的新项目,Morty 是 1.5 年前在撰写本文时发布的,因为它可能很快就会失去官方 Yocto 项目支持。
顺便说一句,它似乎仍然是相扑中的一个错误(或者这在这一点上是错误的功能......?)。刚被这个...解决方法看起来与描述的相同。
(注意:这个是这个时间点的发布... X-D)