Qt Creator只能为CMake项目构建所有目标,而不能构建每个单独的目标。

10

我使用cmake生成qtcreator的项目文件。对于运行部分,我可以有不同的目标,但是对于构建部分,我只能选择全部,不能单独构建每个目标。有没有办法在qtcreator的cmake项目中仅构建一个目标?

3个回答

11
自QtCreator 4.0.0版本开始,在“项目”面板中,进入“构建步骤” -> “详情”,选择您的目标。 您还可以在cmake命令行选项中使用“--target”选项。
更新: 自QtCreator 4.3.0版本和CMake 3.7.2或更高版本开始,目标列表显示在项目视图中,所以您只需右键单击并构建即可。

但是是否可以选择多个目标进行构建呢?看起来只能选择“全部”或“一个”,但界面是一个复选框列表,所以应该可以选择任意数量的目标,但实际上只允许选择一个。 - David Doria
在Qt Creator 4.0.0中,您只能在“项目”窗格中选择一个目标。是的,它是一个复选框列表,但您只能选择一个。 自QtCreator 4.3.0以来,所有目标都可以在项目视图和“项目”窗格中查看,但是仍然无法通过在“项目”窗格或项目视图中进行选择来构建多个目标。 - rboc

4
使用QtCreator 4.0+,可以实现此功能,请参见下面的rboc答案

旧回答

我认为目前这基本上是不可能的。我说“基本上”是因为如果你愿意,可以为每个要创建的目标制定自定义构建配置,在该配置的命令中手动指定目标作为参数。然后,选择该配置并构建即可构建该目标。这是一种极其hacky的解决方法,但不幸的是,我认为这是目前唯一可行的选项。更好的解决方案可能是为每个目标创建一个单独的项目。


是的,你说得对,但cmake非常有用于跨平台、跨IDE开发。仅为了Qt Creator使用而向项目添加额外的定制并不是很有帮助。我使用的是Qt Creator 4.0,问题仍然存在。我无法构建单个目标,只能构建整个解决方案。这太遗憾了。 - Maks
@Maks 如果你正在使用CMake,你可以从命令行构建单独的目标。 - Kyle Strand
1
请务必查看@rboc的答案-现在似乎是可能的。 - David Doria
1
@DavidDoria 我已经更新了我的答案,参考了rboc的意见。我还要求OP更改接受的答案。 - Kyle Strand

1

您可以配置QtCreator以构建当前选择的目标,这应该是默认设置。

要做到这一点,请导航到“项目”窗格,然后在您的Kit的“构建”选项卡中找到“构建步骤”部分。通过单击十字架来删除所有现有的构建步骤。

添加一个“自定义进程步骤”。将“command”字段填充为“%{CMake:Executable:FilePath}”,将“arguments”字段填充为“--build . --target %{CurrentRun:Executable:FileBaseName}”,将“working directory”字段填充为“%{buildDir}”(均不带引号)。

Tada!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接