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

QMake result (makefile) differs when executing from bash instead of QtCreator

本文关键字:结果 QMake makefile 不同 bash 执行 QtCreator      更新时间:2023-10-16

我的目标是将我的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就不同了。make之后的二进制结果当然非常不同。

命令行中的qmake命令似乎创建了一个调试生成文件,而不是发布生成文件:

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是否为我可能错过的环境添加了更多

如果您需要有关设置或生成的生成文件的更多信息,请告诉我。

好的。长话短说:我试着用标准qmake为本地Linux发行版编译,我的问题得到了解决。

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