• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Android之JNI:AndroidStudio使用Android.mk编译C/C++源码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
1.生成.h头文件,配置.c文件(可查看Android之JNI:Android Studio使用Gradle编译C/C++源码)
2.编写Android.mk
//Android.mk简介参考链接:http://blog.sina.com.cn/s/blog_602f8770010148ce.html
LOCAL_PATH:= $(call my-dir) //Android.mk 文件首先必须定义LOCAL_PATH变量,以便用于在开发树中查找源文件.宏函数'my-dir'由编译系统提供,用于返回当前路径(即包含Android.mk的目录)
include $(CLEAR_VARS) //CLEAR_VARS由编译系统提供,指定让GNU MAKEFILE清除许多LOCAL_XXX变量(例如 LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES, 等等...),除LOCAL_PATH.因为所有的编译控制文件都在同一个GNU MAKE执行环境中,所有的变量都是全局的,所以有必要.
LOCAL_MODULE := juziJni //表示编译的动态库名称.名称必须唯一,而且不包含任何空格且不要以lib开头
LOCAL_SRC_FILES:= jni_use.c //表示源代码文件
include $(BUILD_SHARED_LIBRARY) //表示编译生成共享库,是编译系统提供的变量,指向一个GNU Makefile脚本,负责收集自从上次调用'include $(CLEAR_VARS)'以来,定义在LOCAL_XXX变量中的所有信息,并且决定编译什么,如何正确地去做.(BUILD_STATIC_LIBRARY:编译为静态库;BUILD_SHARED_LIBRARY :编译为动态库;BUILD_EXECUTABLE:编译为Native C可执行程序)
3.linux环境下使用ndk-build命令编译生成.so文件
若要指定架构,可以使用如下命令:
 
  1. ndk-build APP_ABI="armeabi armeabi-v7a x86 mips"
4.使用生成的.so文件【Android之Android Studio下使用JNIAndroid Studio下使用.so文件


小Tips:
1.Android.mk:2: *** missing separator.  Stop.
LOCAL_PATH:= $(call my-dir)
include$(CLEAR_VARS)
LOCAL_MODULE := juziJni
LOCAL_SRC_FILES:= jni_use.c
include$(BUILD_SHARED_LIBRARY)
解决办法:$符号前面必须加一个空格
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := juziJni
LOCAL_SRC_FILES:= jni_use.c
include $(BUILD_SHARED_LIBRARY)
2./home/emily/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: fatal error: ./obj/local/armeabi/PassWorld: Input/output error
collect2: error: ld returned 1 exit status
解决办法:在虚拟机和window的共享文件中编译会出现这种问题,copy项目至linux目录即可。





鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#Winfrom小黄鸡功能调用发布时间:2022-07-18
下一篇:
c#统计方法执行时间发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap