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

标签 android android-ndk ndk-build

我们有一个设置,其中我们的 Android 游戏包含一些使用 ndk-build 构建的 native 库。

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

Root
 |
 |-- jni
      |
      |-- Android.mk   // $include ( lib.mk ) and ( photon/photon.mk)
      |-- lib.mk
      |-- photon
            |
            |----- photon.mk
            |----- debug_android_armeabi.mk
            |----- release_android_armeabi.mk

其中一个构建的库 (Photon) 除了其主要的 makefile 之外还附带了 2 个额外的 makefile - 一个用于调试,一个用于发布。

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

最佳答案

可能,您的 photon.mk 看起来像

...
ifdef DEBUG
  include debug_android_armeabi.mk
else
  include release_android_armeabi.mk
endif
...

这样你就可以简单地使用

ndk-build DEBUG=1

如果你想依靠 release/debug buildndk 官方功能,你可能更喜欢

...
ifeq ($(APP_OPTIM),debug)
  include debug_android_armeabi.mk
else
  include release_android_armeabi.mk
endif
...

关于android - NDK 使用不同的 mk 文件构建以进行发布/调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20931831/

相关文章:

android - FragmentPagers 中的 fragment 交互监听器

android - 为什么即使在优化级别 3 下, vector 分配也需要花费这么多时间?

android - Gradle 使用不同的 abiFilters 进行调试和发布

Android JNI CMAKE : member reference type 'JNIEnv' (aka '_JNIEnv' ) is not a pointer

android - 如何在 Eclipse 中启动 Android 模拟器时指定参数(删除数据)

android - 从 DefaultHandler 中获取 Drawable 资源

android - 某些设备上 Surface.nativeLockCanvas 上的 ANR

android - MediaCodec KEY_FRAME_RATE 似乎被忽略了

android - 将 Mat 对象从 android java 传递到 native cpp 部分