c++ - 如何让-fpermissive标志生效?

标签 c++ makefile android-ndk preprocessor-directive android.mk

我正在使用 NDK (Android) 用 C++ 构建一个库。输出告诉我,某些代码被标记为错误,但可以通过使用 -fpermissive 标志来抑制。至少在我看来是这样。输出为:

MyClass.cpp:412:1: error: jump to label 'extractUp' [-fpermissive]
 extractUp:
 ^
jni/../../../../SharedSrc/MyClass.cpp:469:10: error:   from here [-fpermissive]
     goto extractUp;
          ^
jni/../../../../SharedSrc/MyClass.cpp:402:31: error:   skips initialization of 'Foo* ISC'
      Foo *ISC = new Foo;

导致错误的代码与此处无关,因为我要问的问题是什么可能会阻止 -fpermissive 标志生效。 makefile (Android.mk) 在如何设置标志方面似乎是正确的,但我对 make 文件了解不多:

add_definitions(-DFPERMISSIVE=1)

我还尝试过 -Dfpermissive 以防所有大写都不允许,并尝试将其添加到 LOCAL_CFLAGS 中:

LOCAL_CFLAGS += -Dfpermissive

LOCAL_CFLAGS += -DFPERMISSIVE

最佳答案

实际上,这不是一个标志定义,因此您不应使用 -Dflagname,而应使用 -fpermissive,它是编译器的标志。

-Dflagname 具有 #define flagname 的效果,这不是您需要做的。

顺便说一句,-fpermissive 不会抑制错误,它只是将错误降级为警告。

关于c++ - 如何让-fpermissive标志生效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32513101/

相关文章:

c++ - 如何使用ffmpeg输出媒体流?

arrays - 初始化数组与分配内存有何不同?

c++ - 升级到 OS X Mavericks 后架构 x86_64 的 OpenCV undefined symbol

makefile - 在Makefile中导出环境变量

android - 错误 : 'to_string' is not a member of 'std'

c++ - 当有指向其中其他对象的指针时创建对象数组

c++ - LLVM CreateFCmpONE 等效于整数

docker - make 命令在 Windows WSL Ubuntu 中不起作用

Android NDK 加载库 ("KERNEL32.DLL")

cmake - 使用未声明的标识符 '_ISspace'