源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

android开发实践之ndk编译命令简单示例

  • 时间:2022-12-01 10:29 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:android开发实践之ndk编译命令简单示例
[b]前言[/b] Android提供了NDK工具,用来编译native代码(c/c++),该工具配置好了相关的交叉编译环境和工具链,只需要你简单地编写几个.mk文件即可将你的c/c++代码编译为Android的java工程/Android手机可以识别、加载和运行的库或者应用程序。 默认情况下,使用NDK编译c/c++代码,需要将该代码放置到任一个Android应用工程的jni目录下,然后编写相应的Android.mk文件,并执行[code]ndk-build[/code]命令完成编译。其实你也是可以在任意目录下去编译native代码的,只需要在[code]ndk-build[/code]命令后面添加相应的命令行参数即可,这里给出一些常用的[code]ndk-build[/code]命令行参数,方便大家灵活地使用NDK编译自己的native代码,具体的示例我将会在后续的文章中给出。 [b]ndk-build命令行参数[/b] 1、[code]ndk-build NDK_LOG=1[/code] 用于配置LOG级别,打印ndk编译时的详细输出信息 2、[code]ndk-build NDK_PROJECT_PATH=.[/code] 指定NDK编译的代码路径为当前目录,如果不配置,则必须把工程代码放到Android工程的jni目录下 3、[code]ndk-build APP_BUILD_SCRIPT=./Android.mk[/code] 指定NDK编译使用的Android.mk文件 4、[code]ndk-build NDK_APPLICATION_MK=./Application.mk[/code] 指定NDK编译使用的application.mk文件 5、[code]ndk-build clean[/code] 清除所有编译出来的临时文件和目标文件 6、[code]ndk-build -B[/code] 强制重新编译已经编译完成的代码 7、[code]ndk-build NDK_DEBUG=1[/code] 执行 debug build 8、[code]ndk-build NDK_DEBUG=0[/code] 执行 release build 9、[code]ndk-build NDK_OUT=./mydir[/code] 指定编译生成的文件的存放位置 10、[code]ndk-build -C /opt/myTest/[/code] 到指定目录编译native代码 [b]例:[/b] [b]编写 .c 文件[/b] 假设你在 ~/math 目录下编写了一个 math.c 文件,内容如下:
#include <stdio.h>
int add( int a , int b ) {
return a+b;
}
编写 Android.mk 文件,内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := dmath
LOCAL_SRC_FILES := math.c
include $(BUILD_SHARED_LIBRARY)
在 ~/math 目录下,执行 [code]ndk-build[/code] 命令,参数如下:
$ ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk
或:
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk
NDK_PROJECT_PATH 指定了需要编译的代码的工程目录,这里给出的是当前目录,APP_BUILD_SCRIPT给出的是Android makefile文件的路径,当然,如果你还有 Application.mk 文件的话,则可以添加[code]NDK_APP_APPLICATION_MK=./Application.mk[/code] 执行完[code]ndk-build[/code]命令后,你会发现当前目录下,生成了 obj 和 libs 文件夹,这样,你的libdmath.so动态库就已经制作完成了,在 libs/armeabi 目录下。 [b]总结[/b] 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部