SDK 工具

Qt 网络安装程序使用 SDK 工具(sdktool)来配置 CMake 并设置 套件 首选项,例如编译器、调试器、设备和 Qt 版本。您可以使用它从命令行为计算机上的所有用户自动设置 Qt 和 Qt Creator 首选项。对于单个用户,通常在 偏好设置 > 套件 中进行更改要容易一些。

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

sdktool [OPTION] [OPERATION [OPTIONS]]

要了解支持的功能和操作选项,请输入

sdktool --help

值类型

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

SDK 路径

Qt 网络安装程序和 Qt Creator 独立安装程序都安装了 sdktool。安装程序中的 sdktool 默认指向 Qt Creator 从安装程序读取 SDK 工具写入的信息的位置。要将 sdktool 指向其他 Qt Creator 安装,请根据您是否使用 Qt 网络安装程序或脱机安装程序设置 --sdkpath

  • Qt 网络安装程序: <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 Flavor 示例

要在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>格式为 ToolChainType:some_unique_part 的工具链ID,其中工具链类型可以是以下之一,或者插件提供的其他内容
  • 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
--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
  • 1024 表示 LLDB DAP
  • 4096 表示 uVision Debugger
--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>关于硬件的 Qt 平台引导信息。
--b2qSoftware <STRING>关于软件的 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 版本的类型
  • 用于Android的 Qt4ProjectManager.QtVersion.Android
  • 用于桌面Qt的 Qt4ProjectManager.QtVersion.Desktop
  • 用于iOS的 Qt4ProjectManager.QtVersion.Ios
  • 用于QNX的 Qt4ProjectManager.QtVersion.QNX.QNX
  • 用于嵌入式Linux的 RemoteLinux.EmbeddedLinuxQt
  • 用于WebAssembly的 Qt4ProjectManager.QtVersion.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设备: Android.Device.Type
  • 对于本地桌面运行代码: Desktop
  • 对于iOS设备: Ios.Device.Type
  • 对于iOS模拟器: Ios.Simulator.Type
  • 对于嵌入式Linux设备: GenericLinuxOsType
  • 对于Web浏览器: WebAssemblyDeviceType

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

--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。

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

©2024Qt公司有限公司。本文件中包含的文档贡献权归其各自的版权所有者所有。在此提供的文档是根据由自由软件基金会发布的GNU自由文档许可版1.3条款许可的。Qt及其相应的标志是Qt公司芬兰及/或在其他国家和地区的商标。所有其他商标均为各自所有者的财产。