FFTW _GNUC_ 未定义为预处理器宏

FFTW _GNUC_ is not defined as a preprocessor macro

我已将 FFTW 库链接到 this 网站上的 Unreal Engine 项目。但是现在当我尝试将头文件包含到我的项目中时,出现错误:

'__GNUC__' is not defined as a preprocessor macro,
replacing with '0' for '#if/#elif'

我不知道如何解决这个问题。我不想弄乱代码本身,因为我认为它非常好。链接库时我忘记了什么吗?我也试过将头文件作为 C 库包含在内。 任何帮助将不胜感激。

IDE:Visual Studio 2017 社区

OS: Windows 10 专业版 64x

UE4版本:4.20

UnrealEngine 似乎将许多警告视为错误,因此在尝试与产生这些警告的第 3 方库一起使用时会造成麻烦。通常最好修复代码以避免警告,但我认为无论出于何种原因你都不能。

在这种特殊情况下,您可以设置:

bEnableUndefinedIdentifierWarnings = false;

在你的 *.Build.cs class 构造函数中。


如果这不是 UnrealEngine,但仍然是 Visual Studio C++,您也可以尝试将它放在导致警告的代码之前(例如,在包含 header 之前,您会收到警告):

#pragma warning(disable: 4668)

https://docs.microsoft.com/en-us/cpp/preprocessor/warning?view=vs-2019

或禁用它作为编译标志:

/wd4668

https://docs.microsoft.com/en-us/cpp/build/reference/compiler-option-warning-level?view=vs-2019

一般来说,如果您得到一些您认为不应该是错误的东西,如果给定的错误编号(此处为 C4668)通常不是警告,则在网络上搜索。如果是,那么这允许像上面那样快速破解。