Qt qmake不断向调试构建添加-s(strip),如何禁用剥离?
使用的QT版本:5.12.6 我正在尝试使用调试符号从QTWebEngine(quicknanobrowser)构建示例。 即使在显式设置Qt qmake不断向调试构建添加-s(strip),如何禁用剥离?,qt,qmake,qt5.12,Qt,Qmake,Qt5.12,使用的QT版本:5.12.6 我正在尝试使用调试符号从QTWebEngine(quicknanobrowser)构建示例。 即使在显式设置CONFIG+=debug或CONFIG+=debug-nostrip时,我仍然得到一个没有调试符号的二进制文件 在多次故障排除之后,我注意到生成的Makefile确实有-g标志来启用符号,但它也有-s标志来去除符号。然而,我似乎不明白为什么要添加这个-s标志 .pro文件: requires(qtConfig(accessibility)) TEMPLAT
CONFIG+=debug
或CONFIG+=debug-nostrip
时,我仍然得到一个没有调试符号的二进制文件
在多次故障排除之后,我注意到生成的Makefile确实有-g
标志来启用符号,但它也有-s
标志来去除符号。然而,我似乎不明白为什么要添加这个-s
标志
.pro文件:
requires(qtConfig(accessibility))
TEMPLATE = app
TARGET = quicknanobrowser
HEADERS = utils.h
SOURCES = main.cpp
CONFIG+= debug
OTHER_FILES += ApplicationRoot.qml \
BrowserDialog.qml \
BrowserWindow.qml \
DownloadView.qml \
FullScreenNotification.qml
RESOURCES += resources.qrc
QT += qml quick webengine
qtHaveModule(widgets) {
QT += widgets # QApplication is required to get native styling with QtQuickControls
}
target.path = $$[QT_INSTALL_EXAMPLES]/webengine/quicknanobrowser
INSTALLS += target
生成的Makefile片段:
LFLAGS = -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$$ORIGIN/../../../../5.12.6/gcc_64/lib -Wl,-rpath,\$$ORIGIN/../../../../5.12.6/gcc_64/lib -Wl,-rpath-link,/home/amol/code/QTJimber/qtwebengine/lib -Wl,-rpath-link,/home/amol/Qt/5.12.6/gcc_64/lib -s
如果我手动从Makefile中删除-s
标志,我可以得到一个带有符号的二进制文件,但这似乎不是我想要的
编辑添加
消息(配置:$$CONFIG)消息(QMAKE\u LFLAGS:$$QMAKE\u LFLAGS)消息(QMAKE\u LFLAGS\u调试:$$QMAKE\u LFLAGS\u调试)消息(QMAKE\u LFLAGS\u发布:$$QMAKE\u LFLAGS\u发布)消息(QMAKESPEC:$$QMAKESPEC)
到.pro文件:
Project MESSAGE: CONFIG: lex yacc debug exceptions depend_includepath testcase_targets import_plugins import_qpa_plugin qt_build_extra file_copies qmake_use qt warn_on release link_prl incremental shared release linux unix posix gcc sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples enable_new_dtags f16c force_debug_info largefile precompile_header rdrnd shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl prepare_docs qt_docs_targets no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions explicitlib warning_clean debug
Project MESSAGE: QMAKE_LFLAGS:
Project MESSAGE: QMAKE_LFLAGS_DEBUG:
Project MESSAGE: QMAKE_LFLAGS_RELEASE: -Wl,-O1
Project MESSAGE: QMAKESPEC: /home/amol/Qt/5.12.6/gcc_64/mkspecs/linux-g++
nostrip-如果设置,典型的Unix strip功能将关闭,调试信息将保留在二进制文件中。您好,欢迎访问该站点!请你试着把这篇文章改成一个实际的问题好吗?包含您一直收到的一些错误消息也会很有帮助。我没有收到错误消息,只是没有做我怀疑它会做的事情,请在
.pro
文件中添加以下行,运行qmake
并发布输出:消息(配置:$$CONFIG)消息(qmake\u LFLAGS:$$qmake\u LFLAGS)消息(QMAKE\u LFLAGS\u调试:$$QMAKE\u LFLAGS\u调试)消息(QMAKE\u LFLAGS\u发布:$$QMAKE\u LFLAGS\u发布)消息(QMAKESPEC:$$QMAKESPEC)
最有可能的是-s
标志被设置在mkspecs
中的某个地方用于构建配置,但是很难说提供的信息在哪里。我已经检查了我的mkspecs
,似乎该标志只被设置为QMAKE\u LFLAGS\u RELEASE
。在这种情况下,它可以通过QMAKE\LFLAGS\u RELEASE-=-s禁用
我尝试添加QMAKE\u LFLAGS\u RELEASE-=-s
,QMAKE\u LFLAGS\u DEBUG-=-s
和QMAKE\u LFLAGS-=-s
,但是Makefile仍然包含-s
标志