如何使用 Yocto 项目正确配置 Qt SDK?

How do I get Qt SDK configured properly with Yocto project?

我是 Yocto 项目的新手。最初的想法是创建一个基于 core-image-full-cmdline 的自定义图像(没有窗口系统)和 generate 针对该图像的 Qt5 SDK。

据我了解,要获得 Qt SDK,步骤如下:

  1. 下载并添加 meta-qt5 到 bblayers.conf。

  2. 添加到您要构建 SDK 的图像配方中: inherit populate_sdk_qt5

  3. 配置 SDK 版本(add/remove 功能)。 <- 这里我需要帮助。我只想要 EGLFS 支持,没有 X11/Wayland 也没有 Qtwebkit(和 idk,也许还有一些我还不知道的其他功能)。
  4. bitbake my_image -c populate_sdk

虽然我有这个,但我的构建在编译 wayland 时出错: DISTRO_FEATURES_remove = "x11 wayland"

您必须将 conf/bblayers.conf 中的 meta-qt5 路径添加到 BBLAYERS 变量中。 我认为这就是您需要开始的全部内容。

如果您想将 Qt5 添加到您的基于图像的 SDK,您需要将以下行添加到您的图像配方中:

inherit populate_sdk_qt5

我犯了一些错误。所以这些是步骤:

  1. 下载并添加 meta-qt5 到 bblayers.conf。

  2. 添加到您要构建 SDK 的图像配方:inherit populate_sdk_qt5。现在 do_populate_sdk 任务知道目标并将在相应的 sysroot 上安装所需的头文件和库(稍后需要能够根据示例配置 QtCreator)

    2.1 生成SDK时需要开发包。将此添加到图像配方中:IMAGE_FEATURES += "dev-pkgs"

    2.2 如果我们的发行版没有任何 windows 管理器:DISTRO_FEATURES_remove = "x11 wayland"。我的错误是把它放在我的图像食谱上,但它必须设置在 local.conf 上,所以所有的食谱都知道这一点。 More info about Qt backends

    2.3 我对此不确定,但我想删除 qtwebkit,并且我添加了(在 local.conf 上):PACKAGECONFIG_remove_pn-qttools = "qtwebkit" PACKAGECONFIG_remove_pn-qtquick1 = "qtwebkit"。仍然构建了 qtwebkit 模块。我需要对此进行更多调查。

  3. 构建镜像$ bitbake my_image

  4. 构建 SDK $ bitbake my_image -c populate_sdk

现在我们得到了交叉编译所需的工具链。

  1. 如果你想要默认 Qt5 SDK 使用
    bitbake meta-toolchain-qt5
  2. 如果您需要带有额外包的 Qt5 sdk,那么首先使用所需的包编译您的 qt5 图像,然后再编译 sdk。

    bitbake custom-qt5-image

    bitbake -c do_populate_sdk custom-qt5-image

为默认 Qt5 包使用默认 Qt5 SDK: 请按照以下步骤操作 link Yocto Qt5 Toolchain Installation

inherit populate_sdk populate_sdk_qt5IMAGE_FEATURES += "other packages" 在你的自定义-image.bb

bitbake your-custom-image -c populate_sdk