我的NDK项目中需要一些自定义MACRO 但是我没有理想的添加方法,也没有找到答案 有人可以帮忙吗? 非常感谢!
答案 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语法完全相同
例如:
反向= $(2)$(1)
foo = $(调用reverse,a,b)
$(警告$(foo))
结果:
b a