SDK 工具

Qt Online Installer使用 SDK 工具 (sdktool) 配置 CMake 和设置套件首选项,如编译器、调试器、设备和 Qt 版本。例如,你可以从命令行使用它为一台电脑的所有用户自动设置 Qt 和Qt Creator 首选项。对于单个用户,通常在首选项>Kits 中进行更改更方便。

要使用 SDK 工具,请在 Qt 安装目录下的Tools\sdktool\bin 目录中输入以下命令:

sdktool [OPTION] [OPERATION [OPTIONS]]

有关您的 SDK 工具版本所支持的选项和操作的信息,请输入:

sdktool --help

值类型

操作将<KEY> <TYPE>:<VALUE> 形式的设置添加到其创建的配置中。支持的TYPE 值有

SDK 路径

Qt Online Installer 和 独立安装程序都会安装 。安装程序中的 默认为安装程序中 读取 SDK 工具写入信息的位置。要将 指向其他 安装,请根据使用 还是脱机安装程序来设置 。Qt Creator sdktool sdktool Qt Creator sdktool Qt Creator Qt Online Installer --sdkpath

  • Qt Online Installer:<Qt_Online_Installer>/Tools/sdktool
  • Qt Creator 单机版安装程序:
    • 在 Windows 和 Linux 上:<qtcreator>/share/qtcreator/
    • 在 macOS 上 Qt Creator.app/Contents/Resources/

选项

下表概述了可用选项。

选项说明
--help | -h显示 SDK 工具选项的帮助。

输入--help <OPERATION> 获取操作所需选项的帮助。

--sdkpath=<PATH> | -s <PATH>设置 SDK 工具写入文件的路径。

操作

下表总结了可用的操作。

操作说明
添加 ABIFlavor添加系统架构(ABI)。
添加 CMake添加 CMake 工具的路径。
添加调试器添加调试器。
添加设备添加设备。
addKeys<KEY> <TYPE>:<VALUE> 键值对形式添加设置。
添加工具包添加构建和运行工具包。
添加 Qt添加 Qt 版本。
添加编译器添加编译器。
find查找设置值
findKey查找设置键
get获取设置
rmCMake移除 CMake 工具的路径。
rmDebugger移除调试器
rmDev移除设备
rmKeys移除设置
rmQt移除 Qt 版本。
rmTC移除编译器

添加系统架构(ABI)

addAbiFlavor

sdktool addAbiFlavor --flavor <NAME> --oses <OS>(,<OS>)*

addAbiFlavor 选项

下表总结了可用选项。

选项说明必填
--flavor <NAME>系统架构(ABI)名称。是
--oses <OS>(,<OS>)*ABI 适用的操作系统。是

ABI 版本示例

要在 Linux 上添加 Yocto Poky,请输入

./sdktool addAbiFlavor \
--flavor poky \
--oses linux

添加 CMake 工具

addCMake

sdktool addCMake --id <ID> --name <NAME> --path <PATH> [<KEY> <TYPE:VALUE>]

addCMake 选项

下表总结了可用选项。

选项说明需要
--id <ID>CMake 安装的 ID。可以是任何 ASCII(7 位)字符串。

如果在字符串中不使用版本号,注册的 CMake 会在您更新此 CMake 安装时保留 ID,因此所有套件都会自动更新以使用新版本。

是
--name <NAME>CMake 安装的名称。是
--path <PATH>CMake 可执行文件的路径。是
<KEY> <TYPE:VALUE>作为键值对的附加设置。

更多信息,请参阅添加 CMake 工具

CMake 配置示例

要在 Windows 上添加 CMake 工具,请输入

sdktool addCMake \
--id "my.custom.cmake" \
--name "Custom CMake" \
--path "C:\Program Files\CMake-3.30\bin\cmake.exe"

添加编译器

添加编译器

sdktool addTC --id <ID> --language <ID> --name <NAME> --path <PATH> --abi <ABI STRING> [OPTIONS]

addTC 选项

下表总结了可用选项。

选项说明需要
--abi <ABI STRING>编译器的 ABI,格式为ProjectExplorer::Abi::fromString() 可以解析的格式。是
--id <ID>工具链 ID(格式为ToolChainType:some_unique_part ),其中工具链类型可以是以下类型之一,也可以是插件提供的其他类型:
  • ProjectExplorer.ToolChain.Msvc 适用于微软 MSVC 编译器。该编译器会自动检测到,因此无需使用 SDK 工具添加。
  • ProjectExplorer.ToolChain.Gcc 用于 Linux 或 macOS 上的 GCC。
  • ProjectExplorer.ToolChain.Clang 用于 Clang。
  • ProjectExplorer.ToolChain.LinuxIcc 用于 LinuxICC。
  • ProjectExplorer.ToolChain.Mingw 用于 MinGW。
  • ProjectExplorer.ToolChain.ClangCl 用于 Clang/CL。
  • ProjectExplorer.ToolChain.Custom 自定义工具链
  • Qt4ProjectManager.ToolChain.Android 用于 Android。
  • Qnx.QccToolChain 用于 QNX QCC
  • WebAssembly.ToolChain.Emscripten 用于 Emscripten

检查从ProjectExplorer::ToolChain 派生的类的 ID。

some_unique_part Qt Creator 默认使用 GUID。

是
--language <ID>工具链输入语言的 ID:CCxx 。注册 C 或 C++ 编译器时,请务必同时注册相应的 C++ 或 C 编译器。是
--name <NAME>工具链名称。是
--path <PATH>编译器可执行文件的路径。是
--supportedAbis <ABI STRING>,<ABI STRING>编译器支持的 ABI 列表。
<KEY> <TYPE:VALUE>作为键值对的其他设置。

更多信息,请参阅添加编译器

编译器示例

要在 Linux 上添加 GCC 编译器,请输入

./sdktool addTC \
    --id "ProjectExplorer.ToolChain.Gcc:company.product.toolchain.g++" \
    --language Cxx
    --name "GCC (C++, x86_64)" \
    --path /home/code/build/gcc-6.3/usr/bin/g++ \
    --abi x86-linux-generic-elf-64bit \
    --supportedAbis x86-linux-generic-elf-64bit,x86-linux-generic-elf-32bit \
    ADDITIONAL_INTEGER_PARAMETER int:42 \
    ADDITIONAL_STRING_PARAMETER "QString:some string" \

添加调试器

添加调试器

sdktool addDebugger --id <ID> --name <NAME> [OPTIONS]

addDebugger 选项

下表总结了可用选项。

选项说明需要
--abis <ABI,ABI>以逗号分隔的系统架构定义列表。
--binary <PATH>调试器可执行文件的路径。可以是绝对路径、值auto 或 ABI。在Qt Creator 不知道二进制路径的情况下,为 MSVC 工具链查找适当的调试器。
--engine <ENGINE>调试器引擎类型:
  • 1 表示 GDB
  • 4 用于 CDB
  • 8 用于 PDB
  • 256 用于 LLDB
  • 512 用于 GDB DAP
  • 1024 用于 LLDB DAP
  • 4096 用于 uVision 调试器
--id <ID>调试器的唯一 ID。是
--name <NAME>调试器名称。是
<KEY> <TYPE:VALUE>作为键值对的其他设置。

有关详细信息,请参阅添加调试器

调试器示例

要在 Linux 上添加 GDB 调试器,请输入

./sdktool addDebugger \
    --id "company.product.toolchain.gdb" \
    --name "GDB (company, product)" \
    --engine 1 \
    --binary /home/code/build/gdb-7.12/bin/gdb \
    --abis arm-linux-generic-elf-32 \

添加设备

addDev

sdktool addDev --id <ID> --name <NAME> --type <INT> [OPTIONS]

addDev 选项

下表总结了可用选项。使用的选项取决于设备类型。

选项说明需要
--authentication <INT>身份验证方法:
  • 1 用于所有身份验证方法
  • 2 用于使用公钥和私钥对的 SSH 验证
--b2qHardware <STRING>Boot to Qt 硬件平台信息。
--b2qSoftware <STRING>Boot to Qt 软件平台信息。
--debugServerKey <STRING>调试服务器密钥。
--dockerClangdExecutable <STRING>Docker 容器中 Clangd 可执行文件的路径。
--dockerMappedPaths <STRING>以分号分隔的 Docker 映射路径列表。
--dockerRepo <STRING>Docker 映像存储库。
--dockerTag <STRING>Docker 映像标签。
--freePorts <STRING>空闲端口。
--host <STRING>设备的主机名或 IP 地址。
--id <ID>设备的唯一 ID。是
--keyFile <STRING>用户私钥文件的路径。
--name <NAME>设备名称。是
--origin <INT>是否自动检测到设备:
  • 1 表示手动添加的设备
  • 2 表示自动检测到设备
--osType <STRING>设备上的操作系统:
  • Android.Device.Type
  • BareMetalOsType
  • QdbLinuxOsType
  • DockerDeviceType
  • Ios.Device.Type
  • Ios.Simulator.Type
  • McuSupport.DeviceType
  • Desktop
  • WebAssemblyDeviceType
  • QnxOsType
  • GenericLinuxOsType
--password <STRING>用于密码验证的密码。
--sshPort <INT>用于 SSH 连接的端口号。
--timeout <INT>重复使用 SSH 连接的超时(秒)。
--type <INT>设备类型:
  • 1 表示硬件设备
  • 2 表示仿真器、模拟器或虚拟设备
是
--uname <STRING>访问设备的用户名。
<KEY> <TYPE:VALUE>作为键值对的其他设置。

更多信息,请参阅如何:为设备开发

Linux 设备示例

要在 Linux 上添加远程 Linux 设备(硬件设备)并使用 SSH 密钥对设备进行身份验证,请输入:

./sdktool addDev \
    --id " LinuxDevice1" \
    --name "My Remote Linux Device" \
    --type 1 \
    --authentication 2 \
    --freePorts "10000-10100" \
    --host "10.10.10.15" \
    --keyFile "/usr/.ssh/qtc_id" \
    --origin 1 \
    --osType "GenericLinuxOsType" \
    --sshPort 22 \
    --timeout 10 \
    --uname "root"

添加 Qt 版本

addQt

sdktool addQt --id <ID> --name <NAME> --qmake <PATH> --type <TYPE> [OPTIONS]

addQt 选项

下表总结了可用选项。

选项说明需要
--abis <ABI,ABI>以逗号分隔的系统架构定义列表。
--id <ID>Qt 安装的 ID。Qt Creator 在检测到计算机上安装的 Qt 版本时会自动设置 ID。是
--name <NAME>Qt 安装的名称。是
--qmake <PATH>Qt 安装中 qmake 可执行文件的路径。是
--type <TYPE>Qt 版本的类型:
  • Qt4ProjectManager.QtVersion.Android 用于 Android。
  • Qt4ProjectManager.QtVersion.Desktop 桌面 Qt。
  • Qt4ProjectManager.QtVersion.Ios 用于 iOS。
  • Qt4ProjectManager.QtVersion.QNX.QNX 用于 QNX。
  • RemoteLinux.EmbeddedLinuxQt 嵌入式 Linux
  • Qt4ProjectManager.QtVersion.WebAssembly 用于 WebAssembly。

QtVersion::type() 返回的字符串。

是
<KEY> <TYPE:VALUE>作为键值对的附加设置。

更多信息,请参阅添加 Qt 版本

Qt 版本示例

要在 Linux 上添加自建的 Qt 6.8 版本,请输入

./sdktool addQt \
    --id "company.product.qt" \
    --name "Custom Qt" \
    --qmake /home/code/build/qt-6.8/bin/qmake \
    --type Qt4ProjectManager.QtVersion.Desktop \

添加套件

addKit

sdktool addKit --id <ID> --name <NAME> --devicetype <TYPE> [OPTIONS]

addKit 选项

下表概述了可用选项。

选项说明需要
--builddevice <ID>要在其上构建应用程序的设备 ID。
--cmake <ID>用于构建项目的 CMake 可执行文件的 ID。
--cmake-config <KEY:TYPE=VALUE>套件 CMake 配置的参数。可添加多个此类条目。
--cmake-generator <GEN>:<EXTRA>:<TOOLSET>:<PLATFORM>用于生成项目文件的 CMake 生成器。
--debugger <PATH>套件所用调试器的路径。请勿在--debuggerid 中使用此选项。
--debuggerengine <ENGINE>通过--debugger 设置的调试器类型。请勿在--debuggerid 中使用此选项。
--debuggerid <ID>使用addDebugger 操作添加调试器时使用的 ID 之一。请勿将此选项与--debugger--debuggerengine 一起使用。
--device <ID>运行应用程序的设备。
--devicetype <TYPE>运行应用程序的设备类型:
  • Android.Device.Type 用于 Android 设备。
  • Desktop 在本地桌面上运行的代码。
  • Ios.Device.Type 用于 iOS 设备。
  • Ios.Simulator.Type 用于 iOS 模拟器。
  • GenericLinuxOsType 嵌入式 Linux 设备。
  • WebAssemblyDeviceType 网络浏览器

IDevice::type() 返回的字符串。

是
--env <VALUE>构建环境的环境变量值。可以添加多个此类条目。
--run-env <VALUE>运行环境的环境变量值。可以添加多个此类条目。
--icon <PATH>用作工具包图标的图片路径。
--id <ID>工具包的 ID。Qt Creator 在检测到计算机上安装的 Qt 版本时会自动设置 ID。是
--<LANG>toolchain <ID>使用addTC 操作添加编译器时使用的 ID 之一。<LANG> 为:C,Cxx,Nim, 或由插件设置的 ID。
--mkspec <PATH>qmake 使用的mkspec 配置。省略此选项可使用所设置 Qt XML 版本的默认mkspec
--name <NAME>工具包名称。你可以使用变量来根据你在其他操作中设置的套件元素(如 Qt 版本)生成套件名称。是
--qt <ID>使用addQt 操作添加 Qt 版本时使用的 ID 之一。
<KEY> <TYPE:VALUE>作为键值对的其他设置。

更多信息,请参阅添加工具包

工具包示例

要添加一个使用 GCC 编译器和自建 Qt 在 Linux 上构建应用程序的工具包,请输入:

./sdktool addKit \
    --id "company.product.kit" \
    --name "Qt %{Qt:Version} (company, product)" \
    --debuggerid "company.product.toolchain.gdb" \
    --devicetype GenericLinuxOsType \
    --sysroot /tmp/sysroot \
    --Ctoolchain "ProjectExplorer.ToolChain.Gcc:company.product.toolchain.gcc" \
    --Cxxtoolchain "ProjectExplorer.ToolChain.Gcc:company.product.toolchain.g++" \
    --qt "company.product.qt" \
    --mkspec "devices/linux-mipsel-broadcom-97425-g++" \

添加、获取和查找密钥

输入相对于顶层设置目录且不带 .xml 扩展名的文件路径,然后输入一个或多个<KEY> <TYPE>:<VALUE> 键值对。

删除配置项目

要删除 CMake 工具、编译器、调试器、设备、Qt 版本或工具包,请输入

rm<Item> --id <ID>

其中<ID> 是项目的 ID。

另请参阅 如何:管理工具包安装工具包

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.