gpt4 book ai didi

c++ - Release模式下的 Qt 调试 - 所有方法均无效

转载 作者:搜寻专家 更新时间:2023-10-31 00:58:44 25 4
gpt4 key购买 nike

我正在尝试在 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.conf(不记得现在在哪里)默认行为设置为:

QMAKE_LFLAGS_RELEASE = -Wl,-s

其中 -s 表示链接器取消了符号信息。因此,除了您设置的标志之外,您还需要清除 QMAKE_LFLAGS_RELEASE 中的标志(或覆盖)。在您的情况下,只需将其设置为空即可,因此在您的 .pro 文件中添加:

QMAKE_LFLAGS_RELEASE =

进一步说明

如果添加行 message(QMAKESPEC: $$QMAKESPEC)到您的 .pro 文件,当您运行 qmake 时,您将看到您的 make spec 的路径。查看 qmake.conf 文件(它将包含)并逐步完成它们。

假设您使用的是 Windows(因为我没有在 Qt 5.5.1 的 linux make specs 中看到 -Wl,-s 选项设置)那么有问题的文件是: <path-to-qt>/5.5/gcc_64/mkspecs/win32-g++/qmake.conf

无论如何,我没有看到任何其他有用的标志集(我使用的是 linux,所以这只是通过眼睛检查。但是,如果您担心,请将以下内容添加到您的 .pro 文件中:

message(QMAKE_LFLAGS_RELEASE: $$QMAKE_LFLAGS_RELEASE)

在进行更改之前检查它,然后您将全面了解正在发生的事情:)

关于c++ - Release模式下的 Qt 调试 - 所有方法均无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34882836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com