我正在使用qmake
和Visual Studio。在发布版本中,qmake将/ GL和/ O2标志添加到所有项目中,我需要为整个Qt项目中的某些库删除这两个标志。有办法吗?
答案 0 :(得分:9)
我遇到了类似的问题,我通过在.pro文件中添加以下指令解决了这个问题:
QMAKE_CXXFLAGS_RELEASE - = -g
观察_RELEASE后缀,否则无效。
答案 1 :(得分:5)
我使用这个编辑了我的.pro文件,它运行了!
QMAKE_CXXFLAGS_RELEASE -= -Zc:strictStrings
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -Zc:strictStrings
不起作用:
QMAKE_CFLAGS_RELEASE -= -Zc:strictStrings
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO -= -Zc:strictStrings
您可以尝试:
QMAKE_CXXFLAGS_RELEASE -= -GL -O2
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -GL -O2
看看:
你的Qt dir \ compiler \ mkspecs \ win32-msvc2013 \ qmake.conf
答案 2 :(得分:3)
唯一可行的方法是
QMAKE_CFLAGS -= /GL /O2
但我怀疑这适用于QMAKE_CFLAGS
。
或者,您可以重新定义QMAKE_CFLAGS
,忘记其先前的值:
QMAKE_CFLAGS = $$CFLAGS_WITHOUT_GL_O2
答案 3 :(得分:1)
您可以编辑配置使用的qmakespec。
找到它的最简单方法是打开
%QTDIR%\mkspecs\%QMAKESPEC%
假设设置了环境变量(它们应该是)
万一它不起作用,它会像C:\Qt\4.x.x\mkspecs\win32-msvc2010
在qmake.conf文件中,您可以调整两行(它们位于文件的不同位置)
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_LTCG = -GL
到
QMAKE_CFLAGS_RELEASE = -MT
QMAKE_CFLAGS_LTCG =
但请注意,您必须为您正在使用的每个Qt版本执行此操作(以及您将要执行的每个更新)。
[编辑]
如果您想为某些项目选择-O2 -GL选项,则必须添加
QMAKE_CFLAGS_RELEASE += -O2
QMAKE_CFLAGS_LTCG += -GL
到需要这些选项的项目的.pro文件。
取决于使用它的项目数量和不使用它的项目数量,这种方法或重新定义QMAKE_CFLAGS将更方便。
答案 4 :(得分:1)
如果-=
不起作用
尝试输入.pro文件
QMAKE_CFLAGS = $$replace(QMAKE_CFLAGS, "-GL ", "")
QMAKE_CFLAGS = $$replace(QMAKE_CFLAGS, "-O2 ", "")
答案 5 :(得分:0)
最近我遇到了同样的问题。我必须删除Zc:strictStrings编译器标志。我立即了解到,仅删除是行不通的。因此,解决方案是通过将该字符串包含到.pro文件
中来覆盖该标志 QMAKE_CXXFLAGS+=-Zc:strictStrings-
像这样,编译器会打印警告:cl:命令行警告D9025:将'/ Zc:strictStrings'替换为'/ Zc:strictStrings-',但仍然可以完成工作。
答案 6 :(得分:-1)
对我有用的是:
QMAKE_CXXFLAGS -= -Zc:strictStrings