I'm trying to disable optimization in QTCreator to prevent <optimized out>
values in debug mode
I added these in my .pro
file:
QMAKE_CXXFLAGS += -O0
QMAKE_CXXFLAGS -= -O1
QMAKE_CXXFLAGS -= -O2
QMAKE_CXXFLAGS -= -O3
and the compile is running with -O0
switch:
g++ -c -m64 -pipe -O0 `itpp-config --cflags-opt` -g -std=c++1y -Wall -W -D_REENTRANT -fPIC -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_XML_LIB -DQT_CORE_LIB -I../ver.1-1.ryn -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtXml -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o main.o ../ver.1-1.ryn/main.cpp
But when i run program in debug mode I still see <optimized out>
values and setping jumps over the lines!!
How can i correctly disable optimization in debug mode of QTCreator and solve the <optimized out>
and jumping problem?
Thanks
答案 0 :(得分:3)
仔细检查itpp-config --cflags
返回的内容。可能它还需要一个--debug
选项来避免返回优化标记。
答案 1 :(得分:0)
我认为您没有使用正确的方法从-O
删除任何预先存在的QMAKE_CXXFLAGS
标记作为各种构建配置/目标系统的qmake mkspecs
文件/构建系统/主机系统/编译器/ cpu /位数/月相选项的阶段也可以改变这些事情。我自己看到和完成的是:
CONFIG ~= s/-O[0123s]//g
CONFIG += -O0
第一行使用的是&#39; sed&#39;比如编辑在处理中改变那个我认为由~=
运算符触发的变量;在此用法中,它表示对第一个和第二个s
之间的任何正则表达式进行搜索{/
},即{-O0
或-O1
或-O2
或-O3
或-Os
}替换为第二个和第三个/
之间的内容,即{nothing},并在全局范围内执行此操作{根据尾随g
,也可能是正的次数} ...
有些人可能会争辩说,如果你是一个项目创建者/维护者,修改用于CFLAG / CXXFLAG的内容是禁止的,应该让最终用户为自己调整这样的事情 as 最终用户。然而,这是一个整个不同金属密封容器的Annelids !
答案 2 :(得分:0)
QMAKE_CXXFLAGS_RELEASE -= -O1
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE -= -O3
QMAKE_CXXFLAGS_RELEASE += -O0
QMAKE_CFLAGS_RELEASE -= -O1
QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CFLAGS_RELEASE -= -O3
QMAKE_CFLAGS_RELEASE += -O0