C
为 QNX 构建
在 Qt 安全渲染器 2.0 中,包含使用 Qt 5.15.13 构建的 Qt 安全渲染器二进制文件。但是,如果您想自己为 QNX 构建 Qt 安全渲染器,请按照此主题中的说明操作。
Qt 安全渲染器及其工具通过以下项目构建
项目 | 描述 | .pro 文件名 | .pro 文件路径 | 使用 Qt 版本构建 |
---|---|---|---|---|
Qt 安全布局工具 | Qt 安全布局工具为 Qt 安全渲染器生成安全布局数据。 | qtsafelayouttool.pro | <Qt 安装目录>/Src/QtSafeRenderer-<版本>/tools/qtsafelayouttool | 为主平台编译的 Qt。 |
Qt 安全资源编译器工具 | Qt 安全资源编译器工具为 Qt 安全渲染器生成安全资源文件。 | qtsafercctool.pro | <Qt 安装目录>/Src/QtSafeRenderer-<版本>/tools/qtsafercctool | 为主平台编译的 Qt。 |
Qt 安全渲染器 | 在您构建 Qt 安全渲染器时,Qt 安全渲染器插件会在 Qt Creator(即您用于构建项目的 Qt 版本)的当前工具包下构建和安装。 | qtsaferenderer.pro | <Qt 安装目录>/Src/QtSafeRenderer-<版本> | 为 QNX 编译的 Qt。 |
对于 QNX,Qt 安全渲染器提供了以下示例
项目 | 描述 | .pro 文件名 | .pro 文件路径 | 使用 Qt 版本构建 |
---|---|---|---|---|
Qt 集群示例 | Qt 集群演示了在 QNX 上的渲染以及在主 UI 失败后的恢复。 | qtcluster.pro | <Qt 安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer/qtcluster | 为 QNX 编译的 Qt |
告诉故事示例 | 在构建告诉故事时,您必须使用为 QNX 编译的 Qt。然后构建项目的 QNX 特定部分。进程监控器项目与 QNX 特定的告诉故事一起构建。告诉故事使用来自 Qt 集群示例的布局文件。 | examples.pro | <Qt 安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer | 为 QNX 编译的 Qt |
指示器示例 | 指示器演示了与 Qt Quick Designer 相关的功能。 | indicators.pro | <Qt 安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer/indicators/indicators.pro | |
监控示例 | 监控演示了如何验证 指示器 示例的渲染输出。 | Monitor.pro | <Qt 安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer/monitor/monitor.pro | |
本地化示例 | 本地化演示了如何在关键安全元素中本地化内容。 | localization.pro | <Qt 安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer/localization/localization.pro |
构建 Qt 安全工具
注意:从 Qt 安全渲染器版本 1.1.2 开始,Qt 安全布局和 Qt 安全渲染器编译器工具作为预构建包提供在 <Qt 安装目录>/Tools/QSR-<版本>/bin 中。如果您不想自己构建工具,可以跳过此步骤。
要在 Qt Creator 中构建 Qt 安全工具,请执行以下主题中列出的 qtsaferenderer.pro
的步骤。使用为主平台编译的 Qt 版本构建项目。构建成功后,qtsafelayouttool 和 qtsafercctool 将在 <Qt 安装目录>/<Qt 版本>/<编译器>/bin 下生成。
将项目打开为编辑模式
将项目打开到 Qt Creator 的 编辑 模式
- 启动 Qt Creator。
- 选择 文件 > 打开文件或项目,浏览到一个 .pro 文件。
- 选择 打开。
- 在 配置项目 页面,选择用于构建项目的工具包并选择 配置项目。
现在项目已在 Qt Creator 的 编辑 模式下打开。
添加自定义构建步骤 <make install>
注意:如果您正在构建 Qt Safe Renderer 的一些示例,可以跳过此步骤。
在构建 Qt Safe Renderer 之前,添加一个自定义构建步骤,将二进制文件安装到用于构建项目的 Qt 版本中的 <Qt 安装目录>/<Qt 版本/<编译器>/bin 下
- 选择 项目 模式。
- 在工具包中,选择 构建。
- 选择 构建设置 > 构建步骤 > 添加构建步骤 > make。
- 在 make 参数 中添加 install。
- 选择 编辑 模式。您的自定义构建步骤将自动保存。
构建项目
通过选择 构建 > 构建项目 "<项目名称>" 在 编辑 模式下构建项目。
设置交叉编译环境
将 Qt Safe Layout Tool 二进制文件(qtsafelayouttool)和 Qt Safe Resource Compiler Tool 二进制文件(qtsafercctool)复制到包含 qmake 可执行文件的交叉编译环境目录中。
您可以找到预构建的 qtsafelayouttool 和 qtsafercctool 在 <Qt 安装目录>/Tools/QSR-<版本>/bin 或,如果您自己构建,在 <Qt 安装目录>/<Qt 版本>/<编译器>/bin。
例如,将 Qt Safe Tool 二进制文件复制到 /opt/qt15.5.13/install/qnx7-armle-v7/bin/。
设置 QNX 环境
要为 QNX 构建 Qt Safe Renderer 及其示例,您必须修改 QNX 的环境。
为确保 Qt Safe Renderer 和 Qt 应用程序正常运行,请在 graphics.conf 文件中配置管道和图层。每个应用程序应有自己的管道,以避免 Qt Safe Renderer 和 Qt 应用程序之间的干扰。
以下是在背景层上设置 Qt 应用程序管道的策略
begin class framebuffer display = 1 pipeline = 1 format = rgba8888 usage = gles2 end class
以下是在前景层上设置 Qt Safe Renderer 管道的策略
begin class framebuffer display = 1 pipeline = 2 format = rgba8888 usage = inteldrm end class
有关更多信息,请参阅 在 QNX 中配置屏幕。
设置 Qt Safe Renderer 的 QNX 管道
从 Qt Safe Renderer 1.2 开始,要为 Qt Safe Renderer 设置管道,您需要设置以下环境变量 QSR_QNX_SCREEN_PIPELINE
export QSR_QNX_SCREEN_PIPELINE = 2
设置 Qt 应用程序的 QNX 管道
从 Qt 5.15.3 开始,您必须通过设置以下窗口属性来为 Qt 应用程序定义 QNX 管道 _q_platform_qnxPipeline
if defined(Q_OS_QNX) view.setProperty("_q_platform_qnxPipeline", 1); endif
管道值 1 是背景层的默认值。
完整的示例代码在 saferenderer/qtcluster/main.cpp 中。
启用 OpenWFD 平台适配
使用高通 Snapdragon 硬件时,可以使用 OpenWFD 平台适配代替 QNX Screen。您可以通过在构建 Qt Safe Renderer 时设置以下环境变量来启用 OpenWFD 插件
WFD_INCLUDE WFD_LIB
必须将 WFD_INCLUDE
路径指向 OpenWFD 头文件所在文件夹。必须将 WFD_LIB
路径指向 OpenWFD 库所在文件夹。
注意:在使用 OpenWFD 平台适配时,表面宽度必须是 64 的倍数。
构建 Qt Safe Renderer 和示例
要为 QNX 构建.Qt Safe Renderer 及其示例,您必须首先从源码配置和构建 Qt。
获取 Qt 源代码
您可以通过您的 Qt 账户 下载 Qt 源代码。此步骤是可选的,因为您也可以使用 Qt 在线安装程序中的 QNX 二进制文件。
您还可以通过 Git 版本控制系统获取 Qt 源代码。Qt Wiki 提供了通过 Git 获取 Qt 源代码的说明,请参阅 https://wiki.qt.io/Building_Qt_5_from_Git#Getting_the_source_code。
配置和构建 QNX 上的 Qt
请在终端中运行以下命令以配置 QNX 上的 Qt(请注意,以下示例配置的是 Qt 5.15.13)
./configure -confirm-license -commercial -release -xplatform \ qnx-aarch64le-qcc -opengl es2 -nomake tools -skip qtactiveqt \ -skip qtandroidextras -skip qtconnectivity -skip qtdoc \ -skip qtlocation -skip qtmacextras -skip qtsensors -skip qtserialport \ -skip qtwinextras -skip qtx11extras -no-openssl -nomake examples -nomake tests \ -force-debug-info -separate-debug-info -skip qtwebengine -no-fontconfig \ -prefix /opt/qt5.15.13/install/qnx7_armv8
使用终端中的 make 命令构建 Qt。您可以根据主机的核心数运行 make,以您想要的方式。
make -j
设置 Qt Creator
在 Qt Creator 中,您必须按照以下方式设置 QNX 环境脚本的路径
- 选择 工具 > 选项 > 设备 > QNX。
- 选择 添加。
- 输入包含在 QNX 软件开发平台 (SDP) 中的 qnxsdp-env.sh 文件的路径。默认情况下,Linux 中路径为 /opt/qnx700,Windows 中路径为 C:\qnx700。
- 选择 打开。
- 选择 生成套件。
设置路径后,它们将出现在 配置信息 下的 主机 和 目标 字段中。
要在 Qt Creator 中启用 QNX 构建,您必须设置与具有 Qt Safe Renderer 相关的 QNX 修改版本的 Qt 版本。请参阅 添加套件。
为 QNX 构建示例
您可以使用与 构建 Qt 安全工具中 描述的相同步骤为 QNX 构建 Qt Safe Renderer、Telltales 和 Qt Cluster。只需记住在 打开项目编辑模式 中,您必须选择包含 Qt Safe Renderer QNX 修改的套件。套件从 配置项目 页面选择。
在构建 Telltales 示例时,还将构建一个进程监视器项目。
部署到目标设备
您需要将 Qt Cluster 和 Telltales 部署到您的 QNX 目标设备。在部署 Telltales 时,进程监视器也会部署。您可以使用以下步骤在 Qt Creator 中部署项目
- 将目标设备连接到 Qt Creator。
- 在 Qt Creator 中,选择 工具 > 选项 > 设备 > 设备。
- 在 设备 下,选择您的 QNX 设备。
- 选择 部署 Qt 库。
在您的 QNX 设备上部署 Qt 库后,所有 Qt Safe Renderer 库也将复制到设备上。
在特定 Qt 许可证下提供。
了解详情。