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

时间:2010-10-26 09:10:35

标签: android-ndk

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

3 个答案:

答案 0 :(得分:49)

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

LOCAL_CFLAGS    := -DMYDEFINE

这将在您的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

答案 1 :(得分:1)

如果您理解正确,则需要查看C Preprocessor的工作原理。

你有编写C / C ++程序的经验吗?首先,您应该对使用本机代码编写的应用程序的哪些部分非常挑剔。此外,您需要记住,本地代码在内存分配等方面的行为会完全不同,所以这真的不适合猜测。

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

答案 2 :(得分:1)

如果您正在谈论像

这样的android makefile MACRO
  

$(致电my-dir)

它与GNU makefile语法完全相同

Gnu makefile manual

例如:

  

反向= $(2)$(1)

     

foo = $(调用reverse,a,b)

     

$(警告$(foo))

结果:

  

b a