从bash而不是QtCreator执行时,QMake结果(makefile)不同

时间:2019-01-10 09:02:11

标签: c++ qt gcc qt-creator qmake

我的目标是将我的Qt项目添加到Jenkins构建服务器中,以进行每晚构建。因此,我想从命令行编译我的项目。我复制了位于构建配置中的构建步骤:

 "/opt/fslc-x11/2.5/sysroots/x86_64-fslcsdk-linux/usr/bin/qt5/qmake" "/home/xxxx/repositories/xxx/xxx.pro" -spec linux-oe-g++ && /usr/bin/make qmake_all
 "/usr/bin/make"

我在构建目录中执行这些命令。问题出在qmake命令上。 qmake命令生成makefile,但是当我在命令行而不是QtCreator中生成它时,该makefile是不同的。当然,生成后的二进制结果也大不相同。

似乎在命令行中的qmake命令创建了一个调试makefile,而不是发布makefile:

 CFLAGS        = -pipe  -02 -pipe -g -feliminate-unused-debug-types --sysroot=.........

-02 -pipe -g -feliminate-unused-debug-types部分是我在命令行中运行qmake时唯一添加的内容(已通过diff检查)。

我尝试了以下操作:

  • CONFIG+=release添加到了qmake命令中
  • CONFIG-=DEBUG添加到了qmake命令中

此外,我已经验证了系统环境和终端仿真器是相同的。

我的问题归结为:

  1. 为什么qmake从命令行运行时会添加(调试)标志?
  2. QtCreator是否会为我可能错过的环境添加更多内容?

让我知道是否需要有关设置或生成的Makefile的更多信息。

1 个答案:

答案 0 :(得分:0)

好的。长话短说:我已经尝试使用标准qmake为本地Linux发行版进行编译,而我的问题已解决。

似乎问题出在目标(x86_64-fslcsdk-linux)的自定义qmake上。我不会在这个问题上花更多的时间,所以随时添加一个更令人满意的答案。我很乐意尝试一下:)。