在项目.pro文件中我指定:
QMAKE_CXXFLAGS += -fno-exceptions
Run Code Online (Sandbox Code Playgroud)
然而,我能够在我的应用程序中抛出异常.有什么想法吗?
示例:这应该不起作用,但它可以工作
#include <QApplication>
#include <QtDebug>
int main(int c, char**v)
{
QApplication app(c,v);
try
{
throw 1;
}
catch(int i)
{
}
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
Lol*_*4t0 11
您不能通过设置关闭异常,QMAKE_CXXFLAGS因为此选项由处理CONFIG.你应该用
CONFIG-=exceptions
Run Code Online (Sandbox Code Playgroud)
把它们关掉
如果既QMAKE_CXXFLAGS没有CONFIG更改也没有更改设置,请参阅g ++ args :
g++ -c -O2 -frtti -fexceptions -mthreads -Wall <...> main.cpp
Run Code Online (Sandbox Code Playgroud)
现在,让我们设置QMAKE_CXXFLAGS:get
g++ -c -fno-exceptions -O2 -frtti -fexceptions -mthreads -Wall <...> main.cpp
Run Code Online (Sandbox Code Playgroud)
哎呀,我们得到我们-fno-exceptions被重写CONFIG的-fexceptions.现在,让我们设置CONFIG:
g++ -c -O2 -frtti -Wall -fno-exceptions <...> main.cpp
mingw32-make.exe[1]: Leaving directory `G:/proj/ingeritance'
main.cpp: In function 'int qMain(int, char**)':
main.cpp:22:15: error: exception handling disabled, use -fexceptions to enable
mingw32-make.exe[1]: *** [release/main.o] Error 1
mingw32-make.exe: *** [release] Error 2
Run Code Online (Sandbox Code Playgroud)
哦! 编译错误!
| 归档时间: |
|
| 查看次数: |
4859 次 |
| 最近记录: |