0%

Qt Pro文件中QMAKE_CXXFLAGS的使用(带调试信息时)

在Qt的项目文件--即.pro文件中,可以通过QMAKE_CXXFLAGS来给编译器传递编译开关。 但最近遇到一个问题,即对QMAKE_CXXFLAGS的修改在Release模式下不生效。 起因是因为包含了Wbemidl.h这个头文件,在Debug模式下正常编译通过,但在Release模式下报C2440的错误,原因是这个头文件中有初始化非const的字符数组的写法,VC给出的解决方案是关闭编译开关zc: strictstrings,微软官方文档见: https://msdn.microsoft.com/zh-cn/library/sy5tsf8z.aspx

那么在Qt Pro文件中的写法是:

1
QMAKE_CXXFLAGS -= -Zc:strictStrings
结果发现在Release模式下根本没有生效,那么先按网上的资料修改了一下写法:
1
QMAKE_CXXFLAGS_RELEASE -= -Zc:strictStrings
但仍然不行,最后好一通找资料,原来在Release下打开了调试信息的话、写法应该是这样的:
1
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -Zc:strictStrings