【发布时间】:2016-01-19 17:08:03
【问题描述】:
我正在尝试使用QtCreator 中的MinGW 构建我的Qt 应用程序,以尝试调试仅发布的崩溃。
这是我放入 .pro 文件的内容(也尝试将其直接放入 qmake.conf):
QMAKE_CFLAGS_RELEASE += -g
QMAKE_CXXFLAGS_RELEASE += -g
QMAKE_CXXFLAGS += -g
也尝试过
QMAKE_CFLAGS_RELEASE += -ggdb
QMAKE_CXXFLAGS_RELEASE += -ggdb
QMAKE_CXXFLAGS += -ggdb
我像这样单独或一起尝试过它们:
QMAKE_CFLAGS_RELEASE += -g
QMAKE_CXXFLAGS_RELEASE += -g
QMAKE_CXXFLAGS += -g
QMAKE_CFLAGS_RELEASE += -ggdb
QMAKE_CXXFLAGS_RELEASE += -ggdb
QMAKE_CXXFLAGS += -ggdb
我还手动编辑了生成的Makefile(准确地说是Makefile.Release,并检查了Makefile.Debug以防万一)以删除NO_DEBUG标志(我不知道为什么它被放在那里)和确保有-g 和-ggdb 标志。
所有这些的结果是应用程序的构建时间几乎是两倍,但是它的大小与以前完全相同,并且没有任何调试符号,并且尝试调试它没有成功。
我还能做什么?我知道这是可能的,但寻找其他答案只会引导我使用这些标志,而这根本没有帮助(只会让构建速度变慢)
【问题讨论】:
-
您是否也尝试修改 QMAKE_LFLAGS?可能是链接器剥离了调试符号。
-
@SergeyTachenov 这很有意义并解释了额外的构建时间,但是我必须向链接器添加什么标志?
-
由于 MinGW 基本上是 GCC,我怀疑应该使用相同的标志。至少值得一试。
-
有一个 -export-all-symbols 标志,我也试试
-
导出符号是一回事(尽管我认为 GCC 默认导出所有内容),调试信息是另一回事(行号等)。但无论如何它不应该受到伤害。
标签: c++ qt makefile qt-creator