如何在使用NDK时添加自定义MACRO?

Loc*_*Loc 17 android-ndk

我在我的NDK项目中需要一些自定义MACRO但是我没有理想的添加方法,我找不到答案有人可以帮忙吗?非常感谢!

Mos*_*oss 50

如果您想在编译NDK代码(jni)时添加特殊定义,请将以下内容添加到Android.mk中:

LOCAL_CFLAGS    := -DMYDEFINE
Run Code Online (Sandbox Code Playgroud)

这将在您的c/c ++代码中定义宏MYDEFINE.这是一个例子

#ifdef MYDEFINE
// We build the project with this special macro
#else
// We build without setting the macro in the LOCAL_CFLAGS
#endif
Run Code Online (Sandbox Code Playgroud)

  • 很好,它有效:P所以你可能接受答案呵呵:P (5认同)
  • 从我的错误中学习:不要错过`-DMYDEFINE`中的`D` (2认同)

tor*_*ldr 1

如果你理解正确的话,你需要看看C预处理器是如何工作的。

您有编写 C/C++ 程序的经验吗?首先,您应该非常挑剔用本机代码编写应用程序的哪些部分。另外,您需要记住,当涉及到内存分配等时,本机代码的行为将完全不同,因此这确实不是猜测的地方。

花一些时间了解 C/C++,明智地设计您的应用程序,以便明确定义您想要用本机代码编写的部分,并且不会增加应用程序崩溃的机会。我猜大多数项目都可以在没有本机应用程序部分的情况下完成,因此,如果您正在使用它,并且不确切知道自己在做什么,那么您应该真正重新评估这是否是正确的做法。