如何在mingw中启用异常处理

时间:2012-11-15 16:19:30

标签: c++ exception-handling build qmake mingw32

我是Mingw和C ++编程的新手。我正在尝试构建一个C ++项目但是会出现以下错误。

  

错误:禁用异常处理,使用-fexceptions启用。

我需要传递此-fexceptions参数。当我在尝试时

  

mingw32-make -fexceptions

我正在接受以下错误。

  

mingw32-make:例外:没有这样的文件或目录

2 个答案:

答案 0 :(得分:4)

如果你从命令行使用直接g ++,你应该这样做:

g++ -fexceptions ...rest of command...

如果您正在使用Makefile,请将其添加到CXXFLAGS(然后像往常一样使用make进行构建):

# in your Makefile
CXXFLAGS := -fexceptions
...rest of your makefile...

您收到“No such file or directory”错误的原因是-fmake的一个选项,用于指定要使用的文件,因此当您将-fexceptions传递给make时{1}}它说“-f表示他想使用以下文件”exceptions“...让我尝试找一个名为”例外“的文件”然后,当然,它会出错当它无法找到该名称的文件时。

Makefile中的CXXFLAGS变量作为flags / options传递给你的编译器,你应该在那里添加任何额外的编译器标志(比如-fexceptions)。

修改:如果您使用的是qmake,请尝试将CONFIG += exceptions添加到项目文件中。

答案 1 :(得分:3)

由于您正在使用Qt,请在项目文件(* .pro文件)中的CONFIG变量中添加“例外”:

CONFIG += exceptions

这应该注意传递正确的编译器标志。

无论如何,请勿修改生成的Makefile。使用Qt的qmake,Makefile只是一个自动生成的文件。