使用不同的mk文件构建NDK以进行发布/调试

lys*_*cid 6 android android-ndk ndk-build

我们有一个设置,我们的Android游戏包含一些使用ndk-build构建的本机库.

我们的项目包含以下结构:

Root
 |
 |-- jni
      |
      |-- Android.mk   // $include ( lib.mk ) and ( photon/photon.mk)
      |-- lib.mk
      |-- photon
            |
            |----- photon.mk
            |----- debug_android_armeabi.mk
            |----- release_android_armeabi.mk
Run Code Online (Sandbox Code Playgroud)

其中一个构建的库(Photon)除了它的主要文件之外还有2个额外的makefile - 一个用于调试,一个用于发布.

我的问题是 - 如何将此信息传递给ndk-build,以便在构建时可以获取正确的附加mk文件?

Ale*_*ohn 8

可能,你的photon.mk样子

...
ifdef DEBUG
  include debug_android_armeabi.mk
else
  include release_android_armeabi.mk
endif
...
Run Code Online (Sandbox Code Playgroud)

这样你就可以简单地使用

ndk-build DEBUG=1
Run Code Online (Sandbox Code Playgroud)

如果您想依靠发布/调试版本ndk官方功能,您可能更喜欢

...
ifeq ($(APP_OPTIM),debug)
  include debug_android_armeabi.mk
else
  include release_android_armeabi.mk
endif
...
Run Code Online (Sandbox Code Playgroud)