android ndk开发之 application.mk

狂风中的少年 提交于 2020-02-08 05:38:00

  Application.mk 这个文件是被Android ndk编译系统使用的, 和android.mk文件一样也是被放在jni目录下, Applicaiton.mk也是一个GNU makefile, 他描述的对象是当前应用程序定义的所有模块, 在里面也可以定义变量,定义的变量可以被所有模块使用。

  以下是Application.mk编译文件支持的一些内置变量:

  • APP_MODULES: 默认Android ndk编译系。统会编译所有在Android.mk文件里面定义的模块, 这个变量可以覆盖这个行为,提供一个需要编译的用空格隔开的模块列表
  • APP_OPTIM:这个变量可以用来改变产生的二进制优化等级, 设置release或者debug的优化, 默认这里是release 模式, 这个变量可以设置debug模式去产生未优化的二进制代码以方便调试
  • APP_CPPFLAGS:这个变量列表定义要传递到所有模块的c++源文件中的标志。
  • APP_CLAGS:这个变量列表定义要传递到所有模块的c或者c++源文件中的标准
  • APP_BUILD_SCRIPT:默认android ndk编译系统会在工程的jni子目录下查找 Android.mk文件, 使用这个变量可以改变这种方式, 这样就可以使用其他的编译文件了
  • APP_ABI:默认android ndk编译系统产生的二进制接口是armeabi ABI, 这个变量可以产生其他的不同的二进制接口的输出文件;

        比如:

            APP_ABI := mips

          当然可以设置更多的ABI(应用二进制接口)

            APP_ABI := armeabi mips

          如果想生成所有支持的ABIs:

            APP_ABI := all

  • APP_STL: 默认Android ndk编译系统使用 最低的STL运行库,也被称为系统库, 这个变量用来选择不同的STL 实现。  

        例如:APP_STL:= stlport_shared

  • APP_GNUSTL_FORCE_CPP_FEATURES: 和LOCAL_CPP_EXTENSIONS 变量类似, 这个变量指示所有模块依赖具体的c++功能,比如RTTI, 异常等。
  • APP_SHORT_COMMANDS:和LOCAL_SHORT_COMMANDS变量类似, 这个变量让编译系统在高的源文件中用更短的命令。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!