添加编译器

您可以在多个 32 位和 64 位平台上开发 Qt 应用程序。通常,您可以使用 GCC、供应商提供的编译器或第三方编译器在每个平台上构建 Qt 应用程序。在Qt Creator 中,一个工具包指定了用于在特定平台上构建和运行应用程序的编译器和其他必要工具。

Qt Creator 自动检测系统或系统注册的编译器,并在 "首选项">"编译器 "中列出。 Qt Online Installer注册的编译器,并将其列在首选项>Kits >Compilers 中。

套件偏好设置中的 "编译器 "选项卡

注意: 在 macOS 上,只有在使用 Homebrew 或 MacPorts 安装ccache C/C++ 编译器缓存时,才会自动检测到。使用 MacPorts 时,还需要按照 MacPorts wiki 中 "如何启用 ccache"的说明创建符号链接。

重新检测编译器

Qt Creator 发现 x86_64 GCC 编译器时,它会为本地 x86_64 目标创建一个实例。如果你打算在不使用专用交叉编译器的情况下也创建 32 位 x86 二进制文件,请选择Auto-detection Settings >Detect x86_64 GCC compilers as x86_64 and x86 。然后选择Re-detect ,刷新自动检测到的编译器列表。

要删除手动添加的编译器,请选择RemoveRemove All

添加 C 或 C++ 编译器

添加 C 或 C++ 编译器:

  1. 选择首选项>Kits >Compilers
  2. 选择Add 添加新的编译器,或选择Clone 添加所选编译器的另一个版本。
  3. 在列表中选择编译器。
  4. 根据所选编译器设置首选项

支持的编译器

您可以添加以下编译器,通过使用其他编译器或自动检测到的编译器的其他版本来构建应用程序。

编译器说明
Clang用于 Windows、Linux 和 macOS 的 LLVM 编译器的 C、C++、Objective C 和 Objective C++ 前端。
Clang-clClang 的替代命令行接口,与 Visual C++ 编译器cl.exe 兼容。
GCC(GNU 编译器集)适用于 Linux 和 macOS 的编译器。
ICC(英特尔 C++ 编译器)一组 C 和 C++ 编译器。Qt Creator 目前只支持与 GCC 兼容的变体,适用于 Linux 和 macOS。
MinGW(适用于 Windows 的极简 GNU)GCC 和 GNU Binutils 的本地软件移植,用于在 Windows 上开发本地 Microsoft Windows 应用程序。MinGW 与Qt Creator 和 Qt XML for Windows 一起发布。
MSVC(Microsoft Visual C++ 编译器)与 Microsoft Visual Studio 一起安装的 C++ 编译器。
Nim适用于 Windows、Linux 和 macOS 的 Nim 编译器。
QCC用于编译 QNX C++ 应用程序的界面。
自定义除列出的编译器和远程编译器外的其他编译器。

emscripten 编译器是编译为WebAssembly 的工具链。

裸机编译器

此外,Qt Creator Bare Metal 设备插件还支持以下编译器。

编译器说明
IAREW来自各种 IAR Embedded Workbench 开发环境的一组 C 和 C++ 裸机编译器。目前支持的架构有8051,AVR,ARM,STM8MSP430
KEIL来自不同 KEIL 开发环境的一组 C 和 C++ 裸机编译器。目前支持的架构有8051ARM
SDCC适用于各种体系结构的优化 C 裸机编译器。目前支持的体系结构有8051STM8

排除 MinGW 编译错误

如果编译输出中显示的错误信息包含缺少斜线的路径(例如C:QtSDK ),请检查 PATH 变量。在命令行中输入以下命令:

where sh.exe
where make.exe
where mingw32-make.exe

如果这些命令显示了路径,则说明在安装基于 Cygwin 或 MinGW 的工具链时,这些路径已被添加到全局 PATH 变量中,尽管这违反了 Windows 惯例。

要继续使用第三方工具链,请创建一个新的 shell 链接,添加所需的路径(就像 Visual Studio 和 Qt 所做的那样)。shell 链接必须指向 cmd.exe:

C:\Windows\System32\cmd.exe /K C:\path_to\myenv.bat

其中 /K 参数将执行 bat 文件中指定的命令。

path_to 处创建 myenv.bat 文件,该文件应位于方便的位置。在文件中指定工具链的路径。例如

set PATH=C:\path1;C:\path2;%PATH%

其中path1path2是工具链的路径。

最后,从全局 PATH 中删除这些路径,重新启动计算机,再次运行where 命令,以验证全局 PATH 是否已清除。

您可以使用 shell 链接运行第三方工具链中的工具。

另请参阅 编译器添加 Nim 编译器添加自定义编译器Bare Metal 设备开发支持的平台

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.