OEToolchainConfig.cmake 不是由 cmake recipe Yocto 安装的



我一直在玩Yocto,以便为我的Raspberry Pi生成图像,这也是一个用于交叉编译的SDK。我想在我的映像文件中输入要安装的软件包,并使用以下命令生成映像:

bitbake my-image

并使用以下命令生成开发工具包:

bitbake my-image -c populate_sdk

工作流 afaik 是您获取 bash 文件并为交叉编译设置环境。

但是,由于某种原因(问题 1)OEToolchainConfig.cmake在我的案例中没有生成sysroots/usr/share/cmake.

到目前为止,我所拥有的内容如下:

#To build SDK, use bitbake meta-toolchain or bitbake my-image -c populate_sdk
inherit core-image
# for populate_sdk to create a valid toolchain with qt5
inherit populate_sdk populate_sdk_qt5
##
inherit distro_features_check
DESCRIPTION = "My image."
LICENSE="CLOSED"

image_KERNEL_MODULES = " 
kernel-modules 
"
#Framebuffer driver for tft
image_DRIVERS = " 
xf86-video-fbdev 
"
image_DESKTOP_SUPPORT = " 
packagegroup-core-boot 
packagegroup-core-x11 
packagegroup-lxde-base 
localedef 
pointercal 
xinit 
xkeyboard-config 
base-passwd 
liberation-fonts 
"
image_BASIC_TOOLS = " 
apt 
dpkg 
sudo 
tzdata 
dbus 
packagegroup-core-ssh-openssh 
xterm 
networkmanager 
wpa-supplicant 
"
image_DEV_TOOLS = " 
git 
cmake 
gcc 
g++ 
binutils 
binutils-symlinks 
coreutils 
cpp 
cpp-symlinks 
diffutils 
file 
g++ 
g++-symlinks 
gdb 
gdbserver 
gcc 
gcc-symlinks 
gettext 
git 
ldd 
libgcc 
libgcc-dev 
libstdc++ 
libstdc++-dev 
libstdc++-staticdev 
libtool 
make 
perl-modules 
pkgconfig 
python-modules 
python3-modules 
autoconf 
automake 
ccache 
packagegroup-core-buildessential 
glibc-utils 
"
image_DEV_LIBS = " 
wiringpi 
"
image_QT_TOOLS = " 
qtbase 
qtwebengine 
qtwebkit 
"
IMAGE_INSTALL_append = " 
${image_KERNEL_MODULES} 
${image_DRIVERS} 
${image_DESKTOP_SUPPORT} 
${image_BASIC_TOOLS} 
${image_DEV_TOOLS} 
${image_DEV_LIBS} 
${image_QT_TOOLS} 
"
#Maybe consider connman instead of networkmanager
#vc-graphics is problematic with userland..

## SDK stuff, to build sdk use bitbake my-image -c populate_sdk
# Add all static packages:  SDKIMAGE_FEATURES += "staticdev-pkgs"
#SDKIMAGE_FEATURES += "staticdev-pkgs"
#SDKIMAGE_FEATURES += "dev-pkgs"
# Dnf issue fix for nativesdk-qt add to local.conf
#PACKAGE_CLASSES = "package_ipk"
# In the target side, add our libs
TOOLCHAIN_TARGET_TASK_append = " wiringpi-dev"
# Needed for cross-compilation / host tasks
TOOLCHAIN_HOST_TASK_append = " nativesdk-packagegroup-qt5-toolchain-host"
#CMake conflicts with the qt packagegroup, cmake is a must, when qt packagegroup is nonexistent
TOOLCHAIN_HOST_TASK_append = " nativesdk-cmake"
REQUIRED_DISTRO_FEATURES = "x11"
IMAGE_LINGUAS ?= " "
LICENSE = "MIT"
export IMAGE_BASENAME = "my-image"

ENABLE_SPI_BUS = "1"
ENABLE_I2C = "1"
do_image_prepend() {
}

这就提出了一些问题:(问题2)我看到有些人不使用TOOLCHAIN_HOST_TASKTOOLCHAIN_TARGET_TASK,有些人如何能够将包添加到SDK。我想知道我是否做错了什么。(问题3)我已经继承了一些基于其他条目的类,但我不确定继承populate_sdkpopulate_sdk_qt5对我有什么帮助。如果有人可以粗略地解释我做错了什么,以及我可以做些什么来改善工作流程,这可能是对知识的一个很好的补充。

提前感谢您的建议。

尝试回答(问题 1):

我对poky-2.5的发现是,对于我的x86_64目标OEToolchainConfig.cmake被放入dev包中(即nativesdk-cmake-dev-3.10.3-r0.x86_64_nativesdk.rpm)

因此,请尝试:

TOOLCHAIN_HOST_TASK_append = " nativesdk-cmake-dev"

不确定这是否是一个错误。

最新更新