如何使用 Yocto 项目正确配置 Qt SDK?
How do I get Qt SDK configured properly with Yocto project?
我是 Yocto 项目的新手。最初的想法是创建一个基于 core-image-full-cmdline
的自定义图像(没有窗口系统)和 generate 针对该图像的 Qt5 SDK。
所以我的目标是 运行 Qt 应用程序需要有一些
headers & 库已安装,不是吗?我必须在图像配方中指定什么?
- 执行
$ bitbake my_image -c populate_sdk
将生成 my_image
并支持 Qt5 + SDK 安装程序?
据我了解,要获得 Qt SDK,步骤如下:
下载并添加 meta-qt5
到 bblayers.conf。
添加到您要构建 SDK 的图像配方中:
inherit populate_sdk_qt5
- 配置 SDK 版本(add/remove 功能)。 <- 这里我需要帮助。我只想要
EGLFS
支持,没有 X11/Wayland 也没有 Qtwebkit(和 idk,也许还有一些我还不知道的其他功能)。
bitbake my_image -c populate_sdk
虽然我有这个,但我的构建在编译 wayland 时出错:
DISTRO_FEATURES_remove = "x11 wayland"
您必须将 conf/bblayers.conf 中的 meta-qt5 路径添加到 BBLAYERS 变量中。
我认为这就是您需要开始的全部内容。
如果您想将 Qt5 添加到您的基于图像的 SDK,您需要将以下行添加到您的图像配方中:
inherit populate_sdk_qt5
我犯了一些错误。所以这些是步骤:
下载并添加 meta-qt5
到 bblayers.conf。
添加到您要构建 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 模块。我需要对此进行更多调查。
构建镜像$ bitbake my_image
- 构建 SDK
$ bitbake my_image -c populate_sdk
现在我们得到了交叉编译所需的工具链。
- 如果你想要默认
Qt5 SDK
使用
bitbake meta-toolchain-qt5
或
如果您需要带有额外包的 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_qt5
和 IMAGE_FEATURES += "other packages"
在你的自定义-image.bb
bitbake your-custom-image -c populate_sdk
我是 Yocto 项目的新手。最初的想法是创建一个基于 core-image-full-cmdline
的自定义图像(没有窗口系统)和 generate 针对该图像的 Qt5 SDK。
所以我的目标是 运行 Qt 应用程序需要有一些 headers & 库已安装,不是吗?我必须在图像配方中指定什么?- 执行
$ bitbake my_image -c populate_sdk
将生成my_image
并支持 Qt5 + SDK 安装程序?
据我了解,要获得 Qt SDK,步骤如下:
下载并添加
meta-qt5
到 bblayers.conf。添加到您要构建 SDK 的图像配方中:
inherit populate_sdk_qt5
- 配置 SDK 版本(add/remove 功能)。 <- 这里我需要帮助。我只想要
EGLFS
支持,没有 X11/Wayland 也没有 Qtwebkit(和 idk,也许还有一些我还不知道的其他功能)。 bitbake my_image -c populate_sdk
虽然我有这个,但我的构建在编译 wayland 时出错:
DISTRO_FEATURES_remove = "x11 wayland"
您必须将 conf/bblayers.conf 中的 meta-qt5 路径添加到 BBLAYERS 变量中。 我认为这就是您需要开始的全部内容。
如果您想将 Qt5 添加到您的基于图像的 SDK,您需要将以下行添加到您的图像配方中:
inherit populate_sdk_qt5
我犯了一些错误。所以这些是步骤:
下载并添加
meta-qt5
到 bblayers.conf。添加到您要构建 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 backends2.3 我对此不确定,但我想删除 qtwebkit,并且我添加了(在 local.conf 上):
PACKAGECONFIG_remove_pn-qttools = "qtwebkit"
PACKAGECONFIG_remove_pn-qtquick1 = "qtwebkit"
。仍然构建了 qtwebkit 模块。我需要对此进行更多调查。构建镜像
$ bitbake my_image
- 构建 SDK
$ bitbake my_image -c populate_sdk
现在我们得到了交叉编译所需的工具链。
- 如果你想要默认
Qt5 SDK
使用
bitbake meta-toolchain-qt5
或 如果您需要带有额外包的 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_qt5
和 IMAGE_FEATURES += "other packages"
在你的自定义-image.bb
bitbake your-custom-image -c populate_sdk