从命令行构建Qt Creator项目

问题描述:

我正在编写构建脚本以自动执行构建和发布任务。我有一个Qt Creator项目,它有三种配置,其中两种我想从头开始完全重建,没有任何预编译头文件和现有的.o文件跳过(release和release_production)。后者是相同的,除了它具有#defined的PRODUCTION符号。从命令行构建Qt Creator项目

我使用的是windows。我怎样才能从命令行构建这些配置?

编辑:一些说明:Qt Creator自定义构建步骤不存储在qmake makefile中,而是存储在Qt Creator特定的.pro.user XML文件中。我想从命令行执行这些,而不用在脚本中重复它们。

+0

不确定您是否有兴趣使用第三方工具,但我已成功使用CMake来达到此目的。它允许不在目录构建中,因此我在不同的目录中构建不同的配置。您可以简单地设置您的脚本以删除“release”和“release_production”目录的目录,以确保它们从头开始重建。 – user258808 2011-05-25 16:55:57

这里涉及两个步骤:

  1. 运行qmake生成Makefiles。通常的命令是

    c:\qt\4.7.2\bin\qmake.exe" path\to\some\project.pro -r -spec win32-g++ CONFIG+=... 
    

    -spec开关很重要。确保你提供了一个有效的makepec文件。需要在此步骤中指定CONFIG

  2. 运行make进行编译和链接。这很容易

    C:\MinGW32\bin\mingw32-make -f Makefile.Debug 
    

    记得指向make到正确的生成文件。

+0

谢谢,我写了这样的东西,它的工作原理。但是,这不是我想要的,请参阅我编辑的问题。 – 2011-05-26 09:47:20

在QtCreator的项目选项卡中,您具有确切的命令,QtCreator在编译时运行,用于调试和发布。只需在您的项目可以构建的环境中运行这些行(Qt控制台)。但基本上Qt项目是用qmake.exe,然后是nmake.exe或Qt多线程类制作可执行文件jom.exe构建的。

为了您的 “生产” 模式,您可以qmake命令使用CONFIG+=production参数,然后在您的.pro文件:

CONFIG(production){ 
DEFINES+=PRODUCTION 
}else{ 
} 
+0

谢谢。请看我编辑的问题。 – 2011-05-26 09:48:02

+0

'QtCreator --help'没有显示任何你可以通过的参数来直接构建一个你想要的项目......这对于QtCreator家伙来说可能是个好问题。 – vrince 2011-05-26 13:24:02

+0

我发现你的建议是增加一个生产模式,这个模式在我编程的机器上编译时非常有趣,在这个机器上库等不在同一个地方。但我似乎无法让它工作。我试图在'CONFIG(production)'块中修改'INCLUDEPATH'和'DEFINES',但是当我尝试使用生成的Makefile(使用'qmake'生成的参数'CONFIG + = production')进行编译时, 'INCLUDEPATH'和'DEFEFINES'不像我定义的那样。有任何想法吗? – 2017-05-15 09:56:50