C
为INTEGRITY构建
在Qt安全渲染器2.0中,包含使用Qt 5.15.13构建的Qt安全渲染器二进制文件。但是,如果您想使用Green Hills Software INTEGRITY 实时操作系统(RTOS)自行构建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-<版本> | 为INTEGRITY编译的Qt。 |
为INTEGRITY,Qt安全渲染器提供以下示例
项目 | 描述 | .pro文件名 | .pro文件路径 | 与Qt版本构建 |
---|---|---|---|---|
Qt集群示例 | Qt集群展示了在INTEGRITY上的渲染以及从主UI故障中恢复的能力。 | qtcluster.pro | <Qt安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer/qtcluster | 为INTEGRITY编译的Qt |
TeLLtales示例 | 当构建TeLLtaLes时,必须使用为INTEGRITY编译的Qt。然后,项目的INTEGRITY特定部分将一起构建。进程监视器项目与INTEGRITY特定的TeLLtaLes一起构建。TeLLtaLes使用Qt集群示例中的布局文件。 | examples.pro | <Qt安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer | 为INTEGRITY编译的Qt |
本地化示例 | 本地化展示了如何在安全关键元素中本地化内容。 | localization.pro | <Qt安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer/localization/localization.pro |
为INTEGRITY构建Qt描述了在目标设备为三菱R-Car H3或高通Snapdragon的情况下,构建Qt安全渲染器所需的高层次步骤。
但是,请注意,这些步骤假设您已经有了与INTEGRITY环境一起工作的经验。如果您需要更多有关如何为INTEGRITY构建Qt安全渲染器的详细信息,您可以联系 Qt咨询服务。
构建Qt安全工具
注意:由于Qt安全渲染器1.1.2版本起,Qt安全布局和Qt安全资源编译工具可在<Qt安装目录>/Tools/QSR-<版本>/bin中以预构建包的形式使用。如果您不打算自行构建工具,可以跳过此步骤。
在 Qt Creator 中构建 Qt 安全工具,请执行以下主题中列出的步骤,针对 qtsaferenderer.pro
。使用为您的宿主平台编译的 Qt 版本构建项目。成功构建后,将在 <Qt 安装目录>/<Qt 版本>/<编译器>/bin 下生成 qtsafelayouttool 和 qtsafercctool。
将项目打开为编辑模式
将项目打开为 Qt Creator 的 编辑 模式
- 启动 Qt Creator。
- 选择 文件 > 打开文件或项目,然后浏览到 .pro 文件。
- 选择 打开。
- 在 配置项目 页面,选择用于构建项目的套件,并选择 配置项目。
项目现在已在 Qt Creator 的 编辑 模式中打开。
添加自定义构建步骤 <make install>
注意:如果您正在构建 Qt 安全渲染器的一些示例,可以跳过此步骤。
在构建 Qt 安全渲染器之前,请添加一个自定义构建步骤,将二进制文件安装在用于构建项目的 Qt 版本的 <Qt 安装目录>/<Qt 版本>/<编译器>/bin 下
- 选择一个 项目 模式。
- 在套件中,选择 构建。
- 选择 构建设置 > 构建步骤 > 添加构建步骤 > Make。
- 在 Make 参数 中,添加 install。
- 选择 编辑 模式。您的自定义构建步骤将自动保存。
构建项目
通过选择 构建 > 构建项目 "<项目名称>" 在 编辑 模式下构建项目。
设置交叉编译环境
将 Qt 安全布局工具的二进制文件 (qtsafelayouttool) 和 Qt 安全资源编译器工具的二进制文件 (qtsafercctool) 复制到交叉编译环境中包含 qmake 可执行文件的目录。
您可以在 <Qt 安装目录>/Tools/QSR-<版本>/bin 中找到预构建的 qtsafelayouttool 和 qtsafercctool,或者在自行构建时在 <Qt 安装目录>/<Qt 版本>/<编译器>/bin 中找到。
为 INTEGRITY 构建 Qt
Qt 5.9.4 或更高版本支持为 INTEGRITY 构建 Qt 安全渲染器。这是由于已修复到 Qt 5.9.4 中的 QTBUG-62568 INTEGRITY 在 Renesas H3 Salvator-X
在您可以为 INTEGRITY 构建 Qt 安全渲染器之前,您需要构建 Qt 本身。构建的 Qt 包含构建 Qt 安全渲染器所需的 qmake
工具。
要构建 Qt,您必须在宿主平台上正确安装 INTEGRITY 环境。此外,您需要一个环境设置脚本。INTEGRITY 环境必须根据 Renesas 或 Qualcomm 提供的 Green Hills 和板级支持包 (BSP) 指令安装
为 Renesas R-Car H3 设置环境
以下代码提供了为 Renesas R-Car H3 目标提供的环境设置脚本的示例
#!/bin/bash export PATH=$PATH:</path/to>/comp_201714 export INTEGRITY_DIR=</path/to>/int1144 export INTEGRITY_BSP=devtree-arm64 export GL_INC_DIR=</path/to>/int1144/modules/renesas/libs/Gfx/INC:/path/to/int1144/modules/renesas/libs/wm_usr/inc/:</path/to>/int1144/modules/renesas/libs/mmgr_usr/inc/:</path/to>/int1144/modules/renesas/include/ export GL_LIB_DIR=</path/to>/int1144/modules/renesas/libs/Gfx/LIB/rcar-h3:</path/to>/int1144/bin/devtree-arm64
</path/to> 是指向示例脚本中提到的目录的路径。
在设置环境后,您可以通过以下方式为 INTEGRITY 构建 Qt
mkdir qt-shadow cd qt-shadow </path/to>/qt-source/configure -developer-build -xplatform \ integrity-armv8-rcar -confirm-license -nomake examples -nomake tests \ -no-dbus -silent -opengl es2 -static make -j10
您可以在 qt-shadow/qtbase/bin/ 下找到 qmake
二进制文件。
设置高通骁龙的环境
以下代码提供了一个高通骁龙目标环境设置脚本的示例。
export PATH=$PATH:</path/to>/comp_201714 export INTEGRITY_DIR=</path/to>/int1172 export INTEGRITY_BSP=devtree-arm64 export GL_INC_DIR=</path/to>/qc_bsp/ghs_ap/AMSS/multimedia/graphics/opengl/esx/shared/include/public export GL_LIB_DIR=</path/to>/int1170/bin/AMSS/graphics export QCLIBS_DIR=</path/to>/int1170/libs/qclibs export QC_MULTIMEDIA_INC_DIR=</path/to>/qc_bsp/ghs_ap/include/amss/multimedia export GHS_DTC=</path/to>/dtc/dtc
在设置环境后,您可以通过以下方式为 INTEGRITY 构建 Qt
mkdir qt-shadow cd qt-shadow </path/to>/qt-source/configure -device integrity-armv8-msm8996au -nomake examples -nomake tests -no-dbus -silent -static make -j10
您可以在 qt-shadow/qtbase/bin/ 下找到 qmake
二进制文件。
构建 Qt 安全渲染器和示例
在您为 INTEGRITY 构建Qt之后,可以启动Qt Creator并构建Qt安全渲染器及其INTEGRITY特定示例:Telltales和Qt Cluster。要在Qt Creator中启用INTEGRITY构建,您必须将Qt for INTEGRITY设置为您的套件。请参阅添加套件。
您可以使用在构建 Qt 安全工具中描述的相同步骤为INTEGRITY构建Qt安全渲染器、Telltales和Qt Cluster。只需记住,在将项目打开为编辑模式时,您必须选择Qt for INTEGRITY套件。套件在选择从配置项目页面。
构建Telltales示例时,还将构建一个进程监视器项目。
添加新地址空间
在您构建了Telltales示例之后,您需要在您的working INTEGRITY项目中添加一个新地址空间。将以下代码块添加到您的项目下的集成文件(.int)
AddressSpace saferenderer Filename </path/to>/telltales MemoryPoolSize 0x1000000 Language C++ Task Initial StackLength 0x20000 StartIt true EndTask HeapExtensionReservedSize 0x20000 EndAddressSpace
</path/to> 是Telltales二进制文件所在目录。
根据Green Hills提供的INTEGRITY BSP指示和目标设备供应商(瑞萨或高通)的说明重建项目并在目标设备上运行。
在特定Qt许可证下可用。
了解更多。