首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Yocto生成的nativesdk-cmake SDK是不完整的。

Yocto生成的nativesdk-cmake SDK是不完整的。
EN

Stack Overflow用户
提问于 2018-03-28 11:11:54
回答 3查看 1.8K关注 0票数 0

在过去的几天里,我一直试图用Yocto生成一个可行的CMake SDK。我正在尝试根据一个图像文件生成SDK,如下所示:

代码语言:javascript
运行
复制
#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配方给出:

代码语言:javascript
运行
复制
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/目录创建于:

代码语言:javascript
运行
复制
/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/中无效,-where实际上是必需的--不幸的是,当我将SDK安装到/opt时。

对于如何正确生成SDK,我还需要知道其他的事情还是做其他的事情吗?

我真的被困在这里了,任何帮助都是非常感谢的。

提前谢谢。

编辑:我将TOOLCHAIN_TASK语句移到layer.conf,并使用了bitbake meta-toolchain,这也不起作用。

EDIT2:我在PREFERRED_PROVIDER_cmake = "3.6.1"中使用了cmakeVersion3.6,这也不起作用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-17 05:41:27

在即将发布的YoctoProject2.5,Sumo中似乎有一个bug。在这里,sysroots/x86_64-chargestorm-linux/usr/share/cmake/OEToolchainConfig.cmake似乎被省略了。

这方面的临时解决方案是添加

代码语言:javascript
运行
复制
TOOLCHAIN_HOST_TASK += "nativesdk-cmake-dev"

是的,使用发行版总是很有帮助的,特别是当你刚开始某个项目的时候。只需记住,对于所有包含的层,始终使用相同的发布分支。就我个人而言,我不会启动一个基于Morty的新项目,该项目是在1.5年前撰写这篇文章时发布的,因为它可能很快就会超出Yocto项目的官方支持范围。

票数 3
EN

Stack Overflow用户

发布于 2018-06-21 18:01:13

顺便说一句,它似乎仍然是一个缺陷(或者说这在这一点上是错误的.)在相扑。刚被this...workaround咬了一下,看起来和描述的一样。

(注意:这个在这个时候发布的.( X-D)

票数 1
EN

Stack Overflow用户

发布于 2018-04-05 22:17:15

通过使用发行版(我使用的是"morty",而不是“主分支”)来解决问题。显然这很重要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49532977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档