CMake构建配置

项目 > 构建和运行 > 构建 > 构建设置中指定为所选的套件指定的构建设置。

由于需要传递给CMake以正确配置项目的变量数量,因此配置中等到大型CMake项目可能是Qt Creator的一个挑战。为了使这更容易,Qt Creator基于套件首选项为您创建一个初始配置,并在项目的构建设置中的初始配置中显示它。或者,您可以使用CMake预设来配置CMake。

配置字段显示Qt Creator使用的有效CMake调用,该调用使用构建目录构建类型字段中的值。

{CMake configure command}

您可以在附加CMake选项中指定其他CMake选项,例如--find-debug--trace-expand--warn-uninitialized。有关选项的更多信息,请单击字段名称中的链接或查看CMake: cmake(1)

选择套件配置以编辑为项目选择的构建和运行套件的CMake设置。

您可以使用CMake预设文件来指定常见的配置、构建和测试选项,并将它们与他人共享。

初始配置

{Initial CMake configuration}

初始配置列出了Qt Creator用于第一次配置CMake项目的变量。它显示来自套件的CMake配置的默认值,用斜体表示。Qt Creator将变量的初始配置列表保存在项目的源目录中的CMakeLists.txt.user文件中。

当前配置

{Current CMake configuration}

当前配置列出了位于.cmake/api/v1/reply目录中的 JSON 导出中的cmake-file-api中的CMake变量。它显示以斜体表示来自初始配置的变量和红色表示的不匹配值。

选择运行 CMake按钮后,您可以查看和修改 Qt Creator 传递给 CMake 的变量的实际值。在列中列出变量名,在列中列出它们的当前值。有关变量的更多信息,请选择上下文菜单中的帮助或查看CMake: cmake-variables(7)。有关 Qt 特定变量的更多信息,请参阅CMake 变量参考

多配置支持

Qt Creator 支持多配置生成器,例如 Xcode、Visual Studio 和 ninja 多配置。这意味着您只需配置一次 CMake,只有一个构建目录,并且可以更快地在构建类型之间切换。

但是,这也意味着 Qt Creator 不能简单地解析第一个 CMake file-api JSON 导出。因此,构建类型字段的值必须与单一配置生成器(Ninja、Makefile)中的 CMAKE_BUILD_TYPE 变量的值匹配,以确定使用哪个生成器。

在用 Qt 6 为 iOS 进行开发时,只支持 Xcode 生成器。

修改变量值

您可以在初始配置当前配置中查看和编辑传递给 CMake 的变量的实际值。

{Current CMake configuration}

您可以选择多个变量并对它们应用操作。要清除选择,请在该视图的任何地方单击。

要批量编辑变量值,请选择批量编辑

{Edit CMake Configuration dialog}

要使用当前配置进行构建,请选择运行 CMake。在构建过程中,按钮文本将更改为停止 CMake。选择该按钮可以取消当前构建。

添加变量

要添加变量,请选择添加,然后选择要添加的变量的类型:布尔值字符串目录文件

要更改选中变量的类型,在列的变量名称上右键单击,然后在上下文菜单中选择强制为布尔值强制为文件强制为目录强制为字符串

要复制选中变量的名称或值到剪贴板,请选择上下文菜单中的复制

更改变量值

要更改变量的值,请双击它或选中它,然后选择编辑。如果初始、当前和套件配置不同步,请在初始配置当前配置中的上下文菜单中选择应用套件值应用初始配置值

要重置您所做的所有更改,请选择重置

您更改的变量值通过 -D<选项>=<值> 传递给 CMake,CMake 将选项存储在 CMakeCache.txt 文件中。这意味着如果您删除构建目录,所有不属于初始 CMake 配置的自定义变量也将被删除。

要使用更改的变量值重新配置项目,请选择构建 > 清除 CMake 配置,这将删除 CMakeCache.txt 文件。这允许您进行完全重建。

删除变量

要删除选定的变量,请选择未设置。要撤消删除,请选择设置

查看高级变量

要查看所有变量,请选择高级复选框。

要默认查看所有变量,请转到首选项 > CMake > 常规,并选择默认显示高级选项

"General tab in CMake Preferences"

使用初始变量重新配置

要将CMake变量重置为初始值,请选择首次配置中的使用初始变量重新配置。Qt Creator将删除当前的CMake配置,并运行CMake。初始配置值存储在CMakeLists.txt.user文件中,因此删除构建目录不会删除初始配置。

要在Qt Creator重置更改之前提醒您,请转到首选项 > CMake > 常规,并选择在重新配置初始参数之前提示

查看CMake输出

CMake的输出显示在项目模式下的构建设置运行设置面板旁边。

{CMake output in Projects mode}

要清除CMake的输出,请选择清除)按钮。

您可以在过滤字段中输入一个字符串以过滤输出。要指定过滤选项,请选择过滤选项菜单按钮。您可以使用正则表达式或大小写敏感来过滤输出。选择显示匹配filter的行来隐藏匹配filter的行。

Ctrl+F在输出中搜索字符串。

要增大或减小输出文本的大小,请选择放大)或缩小),或按Ctrl++Ctrl+-

要隐藏输出,请选择隐藏右侧侧边栏)按钮或按Alt+Shift+0

CLICOLOR_FORCE环境变量

Qt Creator将环境变量CLICOLOR_FORCE设置为1以显示CMake的ANSI彩色输出。这可能会影响进程输出。

如果输出看起来不正确或与较早的Qt Creator版本不同,请尝试在使用构建环境中将CLICOLOR_FORCE设置为0

{Build Environment with CLICOLOR_FORCE set}

在Windows上使用链接点

为克服Windows上长路径的问题,为源和构建目录创建并使用链接点。在链接点上,一个目录作为计算机上另一个目录的别名。

要为CMake的配置、构建和安装操作使用链接点,请转到首选项 > CMake > 常规,并选择为CMake配置和构建操作使用链接点

{CMake General preferences}

Qt Creator在C:\ProgramData\QtCreator\Links存储链接点。要使用其他路径,将其设置为QTC_CMAKE_JUNCTIONS_DIR环境变量的值。

将环境变量QTC_CMAKE_JUNCTIONS_HASH_LENGTH设置为缩短MD5哈希键的默认长度值。

CMake构建步骤

Qt Creator通过运行cmake . --build来构建CMake项目,然后根据项目配置中指定的CMake生成器运行:例如makemingw32-makenmakeninja。CMake生成器产生适用于Qt Creator的项目文件。还支持多配置生成器。

您可以在构建步骤中添加要传递给CMake和生成器的参数以及构建命令的目标。

{CMake build steps}

注意:虽然其他CMake生成器通常与Qt一起安装,但你通常需要自己安装Ninja。

在交叉编译时,要将应用程序安装到临时目录中,请选中安装临时目录复选框,并在临时目录字段中指定目录的路径。包装工具将从目录的内容构建包。

使用Ninja作为CMake生成器

要在CMake中使用Ninja,您必须安装它并在构建和运行工具包中选择它作为CMake生成器。

  1. 安装Ninja。
  2. 将Ninja可 执行文件的路径添加到系统变量PATH的值中。
  3. 项目 > 构建与运行 > 构建 > 构建设置 中,选择 工具包配置.

    {Kit CMake Configuration dialog}

  4. 选择 CMake生成器 字段旁边的 更改 以打开 CMake生成器 对话框。

    {CMake Generator dialog}

  5. 生成器 中,选择 Ninja
  6. 选择 确定 以保存您的更改并关闭对话框。
  7. 选择 关闭 以关闭 工具包CMake配置 对话框并返回到 构建设置

注意:为防止旧构建工件影响您第一次修改项目后的第一次构建,请选择 构建 > 重新构建项目。这会清理构建目录并执行新的构建。

使用包管理器与CMake

为使用CMake自动设置Conanvcpkg包管理器

  1. 创建一个在项目源目录中安装依赖项的CMake脚本文件,从conanfile.txtconanfile.pyvcpkg.json文件中安装。
  2. 将脚本的路径设置为CMAKE_PROJECT_INCLUDE_BEFORE变量的值。
  3. 转到首选项 > CMake > 常规 并选择 包管理器自动设置

QTC_RUN环境变量

当执行cmake过程时,Qt Creator将环境变量QTC_RUN设置为1

这使CMake代码能够检测它是否是从Qt Creator中执行的。

CMake清理步骤

在用CMake构建时,您可以在 清理步骤 中添加要传递给CMake、生成器和清理命令的目标的参数。

{CMake clean steps}

构建错误和警告将解析并显示在问题中。

另请参阅为项目激活工具包添加自定义输出解析器配置项目以进行构建配置项目以进行运行如何:使用CMake进行构建打开项目CMake

©2024 本文档中的Qt公司文档贡献属于各自所有者的版权。提供的文档在免费软件基金会发布的GNU自由文档许可协议的第1.3版下提供许可。GNU自由文档许可协议第1.3版。Qt及其相关标志是芬兰Qt公司以及/或其他国家的商标。所有其他商标均为各自所有者的财产。