C

使用自定义工具链

默认情况下,Qt Quick Ultralite 在支持的平台上支持 ARM GCC、GHS 或 IAR 工具链。但是,你可以在项目中使用自己的编译器。

要为你的工具链配置 Qt Quick Ultralite,请按照以下步骤操作

  1. <YOUR_COMPILER>.cmake 添加到 lib\cmake\Qul\toolchain 目录。
  2. platform\boards\<MANUFACTURER_NAME>\<YOUR_PLATFORM>\cmake 下创建 <YOUR_COMPILER> 目录。
  3. 编辑 Qt Quick Ultralite 中的 CMake 配置文件

向项目中添加 <YOUR_COMPILER>.cmake

<YOUR_COMPILER>.cmake 添加到 lib\cmake\Qul\toolchain 目录。此文件为项目配置了你的工具链。你也可以使用现有的工具链配置作为你编译器配置的基础。

文件中应设置以下变量

变量描述
CMAKE_SYSTEM_NAMECMake 为其构建的操作系统。这必须设置为 Generic
CMAKE_SYSTEM_PROCESSORCMake 为其构建的处理器。例如,如果你的目标 CPU 是 ARM CPU,则将其设置为 arm
COMPILER_FOLDER_NAME告诉 Qt Quick Ultralite 项目应使用哪个编译器目录来针对目标平台。这必须与 platform\boards\<MANUFACTURER_NAME>\<YOUR_PLATFORM>\cmake 中的编译器目录名称匹配,否则在配置过程中你会得到错误。
LINKER_SCRIPT_OPTIONqul_platform_add_default_linker_script 中使用,以告诉链接器使用哪些标志。如果你没有使用 LINKER_SCRIPT_OPTION,则不需要它。
CMAKE_C_COMPILERC 编译器的路径。
CMAKE_CXX_COMPILERC++ 编译器的路径。
CMAKE_ASM_COMPILER汇编编译器的路径。如果你在你的平台中没有汇编文件,则不需要它。
CMAKE_AR工具链的归档器的路径。
CMAKE_CXX_FLAGS_INIT在每次配置中使用的 C++ 编译器标志。
CMAKE_C_FLAGS_INIT在每次配置中使用的 C 编译器标志。
CMAKE_C_FLAGS_DEBUG在除了CMAKE_C_FLAGS_INIT中使用的标志之外,在调试配置中使用的C编译器标志。
CMAKE_CXX_FLAGS_DEBUG在调试配置中使用的C++编译器标志,除了CMAKE_CXX_FLAGS_INIT中的标志。
CMAKE_EXE_LINKER_FLAGS_INIT在每个配置中都使用的链接器标志。

此外,您还需要设置一个可以用来识别您的编译器的变量

SET(<YOUR_COMPILER> ON)

这被用于其他CMake文件中,根据需要配置其他内容。

<YOUR_COMPILER>目录

platform\boards\<MANUFACTURER_NAME>\<YOUR_PLATFORM>\cmake目录中为工具链创建一个名为<YOUR_COMPILER>的目录(或在之前步骤中将名称设置为COMPILE_FOLDER_NAME),并将“cmake目录”部分中提到的所有必需文件添加到其中。

Qt Quick Ultralite中的CMake配置文件

您的工具链可能在Qt Quick Ultralite中需要一些额外的配置。

以下文件包含与编译器相关的配置,可能值得检查。

  • examples\CMakeLists.txt具有编译器相关的警告标志,如WallWerror。如果您的编译器不支持已提供的标志,请在此处添加您的标志。
  • platform\CMakeLists.txt如果您打算在多个平台上使用相同的编译器,那么在此处为Platform编写一些公共编译选项可能是个好主意。
  • src\CMakeLists.txt用于构建Core目标。如果您的编译器有一些必须考虑的特定参数,请在此处添加它们。

    该文件还包含支持编译器的配置代码。请确认您的编译器可以使用设置的参数,如有必要,修改代码。

  • src\pngdecoders.cmake将基于LodePNG的PNG解码器添加到Qt Quick Ultralite。如果您在构建解码器时必须考虑编译器的特定参数,请在此处添加它们。

您的编译器配置已准备好使用。通过运行CMake并使用-DCMAKE_TOOLCHAIN_FILE=path\to\Qt\QtMCUs\1.5.0\cmake\Qul\toolchain\<YOUR_COMPILER>.cmake来测试它。

在某些Qt许可证下提供。
了解更多信息。