Yocto生成的nimentdk-cmake SDK是不完整的



在过去的几天中,我一直试图通过yocto项目生成可行的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/

但是,此CMake目录在/opt/poky/2.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/中无效,实际上是需要 - 不幸的是,当我将SDK安装到/opt时。

我是否需要了解其他任何事情,或者对如何正确生成SDK做任何其他事情?

我真的被困在这里,确实值得赞赏。

预先感谢。

edit :我将TOOLCHAIN_TASK语句移至layer.conf和使用的bitbake meta-toolchain,也不起作用。

edit2 :我使用PREFERRED_PROVIDER_cmake = "3.6.1"的CMAKE版本3.6,也无法正常工作。

迫在眉睫的Yocto项目2.5,Sumo,版本中似乎有一个错误。在这里,sysroots/x86_64-chargestorm-linux/usr/share/cmake/OEToolchainConfig.cmake似乎被省略了。

临时解决方案是添加

TOOLCHAIN_HOST_TASK += "nativesdk-cmake-dev"

是的,使用版本总是有帮助的,尤其是如果您对某些项目的新手。只需记住,要始终在所有随附的层中使用相同的释放分支。就个人而言,我不会根据莫蒂(Morty(启动一个新项目,该项目是在1.5年前发布的,因为它很可能很快就会退出Yocto的官方项目支持。

顺便说一句,似乎它仍然是一个错误(或者在这一点上这是错误的...?(。只是被这个...解决方案看起来与所描述的相同。

(注意:此 IS 在此时间点发布... x-x(

通过使用释放(我使用的" morty",而不是"主分支"(解决的问题和poky本身解决了问题。这显然非常重要。

最新更新