gpt4 book ai didi

c++ - 当我尝试使用异常时,为什么我的代码在 Qt Creator 中使用 -fno-exceptions 进行编译?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:50 25 4
gpt4 key购买 nike

在我指定的项目 .pro 文件中:

QMAKE_CXXFLAGS += -fno-exceptions  

但我能够在我的应用程序中抛出异常。对此有什么想法吗?

示例:这不应该起作用,但它起作用了

#include <QApplication>
#include <QtDebug>

int main(int c, char**v)
{
QApplication app(c,v);
try
{
throw 1;
}
catch(int i)
{

}
return app.exec();
}

最佳答案

您不能通过设置 QMAKE_CXXFLAGS 来关闭异常,因为此选项由 CONFIG 处理。你应该使用

CONFIG-=exceptions

关闭它们。

QMAKE_CXXFLAGSCONFIG 设置都没有改变时查看 g++ args:

g++ -c -O2 -frtti -fexceptions -mthreads -Wall <...> main.cpp

现在,让我们设置QMAKE_CXXFLAGS:获取

g++ -c -fno-exceptions -O2 -frtti -fexceptions -mthreads -Wall <...> main.cpp

糟糕,我们的 -fno-exceptionsCONFIG-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

哦!编译错误!

关于c++ - 当我尝试使用异常时,为什么我的代码在 Qt Creator 中使用 -fno-exceptions 进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8802992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com