C

架构和平台特定构建设置

Qt Quick Ultralite 被分为核心理库和平台库。这些组件的编译设置可以用于多个项目。

使用每个 BoardArchitectureConfig.cmake 中的 QUL_PLATFORM_ARCHITECTURE CMake 变量设置板卡的架构。

set (QUL_PLATFORM_ARCHITECTURE "cortex-m7-hf-fpv5-d16")

Qt Quick Ultralite 支持的默认架构可以在 platform\architecture 找到。CMake 会查找与给定字符串匹配的架构并加载为它定义的预设值。

使用自定义架构

如果你的 CPU 不符合预定义的任何架构,你可以创建自己的。需要指定一个自定义架构名称,它不能与现有的任何架构冲突,以及 CMake 读取自定义设置所在的文件位置。

set(QUL_PLATFORM_ARCHITECTURE SomeCustomName)
set(QUL_PLATFORM_ARCHITECTURE_FILE "${CMAKE_CURRENT_LIST_DIR}/${QUL_COMPILER_NAME}/architecture.cmake")

在设置上述两个变量时,将禁用所有其他架构处理。您可以从 platform\architecture 中的任何文件中选择一个作为自定义文件的基础。

设置传播

为了传递项目不同部分的编译设置,CMake 使用的接口库不是实际库,但可以继承设置。为了将设置继承到您的应用程序中,您需要链接到它们。对于标准使用,当您使用 qul_add_target 注册应用程序时,这是自动完成的。

可用的编译设置

架构

库目标 Qul::PlatformArchitecture 包含特定于您的 CPU 架构的设置。

target_link_options(PlatformArchitecture INTERFACE
    -mthumb
    -mfloat-abi=hard
    -mfpu=fpv5-d16
    -mcpu=cortex-m7
    -mapcs
)
target_compile_options(PlatformArchitecture INTERFACE
    -mthumb
    -mapcs
    -mcpu=cortex-m7
    -mfloat-abi=hard
    -mfpu=fpv5-d16
    -fno-common
    -ffunction-sections
    -fdata-sections
    -ffreestanding
    -fno-builtin
)

平台

Qul::Platform 库包含特定于您的平台设置,该平台为使用 Qt Quick Ultralite 提供的 API 的应用程序提供设置。

平台 SDK 配置

Qul::PlatformBSPConfig 库包含需要访问 SDK 特定函数和头文件的应用程序所需的设置。例如,特定的硬件上下文函数或中断处理程序。只使用 Qt Quick Ultralite 提供的 API 的应用程序不需要链接到此库。

有关如何指定供应商 SDK 特定设置的详细信息,请参阅移植指南

链接脚本

Qul::PlatformDefaultLinkerScript 包含默认链接脚本设置。这些设置由每个平台在其 LinkerScriptConfig.cmake 文件中通过调用 CMake 函数来指定。

qul_platform_add_default_linker_script(<LINKER_SCRIPT_FILE>)

请参阅 添加你的链接脚本 的示例。

该函数可以多次调用,以防你的平台需要多个链接脚本。它将为库 Qul::PlatformDefaultLinkerScript 添加每个链接脚本。

为了将链接脚本传递给你的应用程序,你需要链接到这个库。在通过函数 qul_add_target 添加你的应用程序时,这会自动完成。

如果你想自己处理链接脚本而不想有任何自动处理,可以设置变量 QUL_NO_DEFAULT_LINKER_SCRIPT。这将防止任何链接脚本添加到你的应用程序中。

核心库的定制优化

通常,核心库是独立于平台构建的。如果你的平台需要为核心库定制编译设置(例如,为优化),你可以在平台目录下的 cmake 文件夹中创建 coreLibrary.cmake 文件。此文件可以为 Core 目标设置额外的标志。

注意:此文件仅在构建 Qt Quick Ultralite 核心库和平台库时加载。

可在某些 Qt 许可证下获得。
了解更多信息。