我曾经在Qt 5.10.0上运行我的应用程序,我不记得遇到过这个问题,我确实发布了build,并且得到了没有符号的二进制文件。我在 qt creator 4.1 中降级到 5.9.2,因为它是 CentOS 7 存储库附带的标准版本,所以我将能够将我的应用程序部署为标准 RPM。
在 5.9.2 中,我选择发布版本,但我仍然得到巨大的二进制文件,Makefile
是用包括-g
在内的CFLAGS
生成的,但如果我手动删除它,我会得到没有调试符号的二进制文件。例如,当我做qmake CONFIG+=release
时也会发生同样的事情。是否有某种默认设置应该覆盖?
我偶然想通了。显然是qmake
规范文件
/usr/lib64/qt5/mkspecs/linux-g++/qmake.conf
包含一行说QMAKE_CFLAGS_RELEASE += -O2 -g ....
,似乎这是覆盖默认CFLAGS
,我删除了该行并qmake
启动正确的构建配置。出于某种原因,以前的调试版本提供了 220 MB 的二进制文件,而现在的调试版本提供了 66 MB 的二进制文件。