1

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

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

我需要传递这个 -fexceptions 参数的地方。当我尝试

mingw32-make -fexceptions

我收到以下错误。

mingw32-make:异常:没有这样的文件或目录

4

2 回答 2

4

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

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

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

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

你得到“没有这样的文件或目录”错误的原因是因为它是一个指定要使用的文件-f的选项,所以当你传递给它时说“意味着他想使用以下文件” “......让我试试并找到一个名为“exceptions”的文件,当然,当它找不到该名称的文件时,它会出错。make-fexceptionsmake-fexceptions

Makefile 中的CXXFLAGS变量作为标志/选项传递给编译器,您应该在其中粘贴任何额外的编译器标志(如-fexceptions)。

编辑:如果您正在使用qmake,请尝试添加CONFIG += exceptions到您的项目文件中。

于 2012-11-15T16:27:03.053 回答
3

由于您使用的是 Qt,因此将“例外”添加到项目文件(*.pro 文件)中的 CONFIG 变量中:

CONFIG += exceptions

This should take care of passing the correct compiler flags.

In any event, do not modify the generated Makefile. With Qt's qmake, the Makefile is just an auto-generated file.

于 2012-11-15T16:31:54.430 回答