将nativesdk-qt4-tools添加到我的yocto SDK中

问题描述 投票:0回答:1

我正在尝试将nativesdk-qt4-tools添加到我的yocto SDK。我希望这些库可用于主机可执行文件(在构建过程中使用)。

将Qt工具链添加到SDK

我已经在我的core-image-x11.bbappend文件中添加了以下内容:

TOOLCHAIN_HOST_TASK_append = "\
    nativesdk-packagegroup-qt-toolchain-host \
"
TOOLCHAIN_TARGET_TASK_append = "\
    qt4-x11-free \
"

当我在目标SDK目录中查找时,会找到qt库,例如:

<path>/sysroots/arm1176jzfshf-vfp-poky-linux-gnueabi/usr/lib/libQtCore...

我希望在主机SDK中找到相同的文件;但是,它们不存在:

ls <path>/sysroots/x86_64-pokysdk-linux/usr/lib/libQt*
ls: cannot access '<path>/sysroots/x86_64-pokysdk-linux/usr/libQt*': No such file or directory

我在TOOLCHAIN_HOST_TASK_append中尝试了几种不同的Qt4食谱,我也曾尝试将相同的食谱添加到INSTALL_IMAGE + =“ ...”,但没有一个起到我想要的效果。

在线建议建议我可以跑步

bitbake -c populate_sdk meta-toolchain-qt

但是这也不会安装必要的库。

Qt5有几种解决方案,但都不适用于Qt4。不幸的是,这不是个人项目,因此无法升级到Qt5。

linux qt embedded-linux yocto
1个回答
0
投票

事实是问题在于尝试使用错误的工具来完成工作。从在线documentation(一位同事向我指出)

“原生”是什么意思?

“本机”后缀标识出配方(以及配方的变体),这些配方生成用于构建主机而不是目标计算机的文件。这通常用于构建过程中所需的工具(例如automake)。

nativesdk是什么意思?] >>

“ nativesdk”前缀标识配方(以及配方的变体),这些配方生成的文件用于标准SDK的主机部分,或用于生成类似于SDK的内容(例如buildtools-tarball)的文件。它们是为SDKMACHINE构建的,它可能与构建主机的体系结构相同或不同。

正确的解决方案不是使用nativesdk构建设置,而是构建与主机系统更匹配的仿真器(例如qemux86或qemux86_64)。当为仿真器创建SDK时,我们可以使用该SDK来构建新的库和可执行文件,以使用与目标系统相同的软件版本在主机上运行。

© www.soinside.com 2019 - 2024. All rights reserved.