本页内容

SDK 工具

Qt Online Installer 使用 SDK 工具(sdktool )来配置 CMake 并设置Kit首选项,例如编译器、调试器、设备和 Qt 版本。例如,您可以通过命令行使用该工具,为计算机上的所有用户自动设置 Qt 和Qt Creator 的首选项。对于单个用户而言,通常更方便在Preferences >Kits 中进行更改。

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

sdktool [OPTION] [OPERATION [OPTIONS]]

如需了解您所用 SDK 工具版本支持的选项和操作,请输入:

sdktool --help

值类型

这些操作会以<KEY> <TYPE>:<VALUE> 的形式将设置添加到其创建的配置中。支持的TYPE 值包括:

SDK 路径

Qt Online InstallerQt Creator 独立安装程序均会安装sdktool 。安装程序生成的sdktool 默认位于安装程序中的Qt Creator 读取 SDK Tool 写入信息的路径。若要将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 工具写入文件的路径。

操作

下表总结了可用的操作。

操作描述
addAbiFlavor添加系统架构(ABI)。
addCMake添加 CMake 工具的路径。
addDebugger添加一个调试器。
addDev添加设备。
addKeys将设置作为<KEY> <TYPE>:<VALUE> 键值对添加。
addKit添加一个构建和运行套件。
addQt添加一个 Qt 版本。
addTC添加一个编译器。
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"

添加编译器

addTC

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 适用于 Microsoft 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" \

添加调试器

addDebugger

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
  • LLDB DAP 为 1024
  • uVision 调试器:4096
--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>身份验证方法:
  • 0 表示所有身份验证方法
  • 1 表示使用公钥和私钥对进行 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>设备是否被自动检测到:
  • 0 表示手动添加的设备
  • 1 表示自动检测到的设备
--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>设备类型:
  • 0 表示硬件设备
  • 1 表示仿真器、模拟器或虚拟设备
是的
--uname <STRING>用于访问设备的用户名。
<KEY> <TYPE:VALUE>以键值对形式提供的其他设置。

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

Linux 设备示例

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

./sdktool addDev \
    --id " LinuxDevice1" \
    --name "My Remote Linux Device" \
    --type 0 \
    --authentication 1 \
    --freePorts "10000-10100" \
    --host "10.10.10.15" \
    --keyFile "/usr/.ssh/qtc_id" \
    --origin 0 \
    --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 适用于 Web 浏览器。

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

是
--env <VALUE>构建环境的环境变量值。您可以添加多个此类条目。
--run-env <VALUE>运行环境的环境变量值。您可以添加多个此类条目。
--icon <PATH>用作套件图标的图像路径。
--id <ID>套件的 ID。当Qt Creator 检测到计算机上已安装的 Qt 版本时,会自动设置该 ID。是
--<LANG>toolchain <ID>使用“addTC ”操作添加编译器时所用的 ID 之一。<LANG> 可以是:CCxxNim ,或由插件设置的值。
--mkspec <PATH>qmake 使用的“mkspec ”配置。省略此选项将使用所选 Qt 版本的默认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.