zoukankan      html  css  js  c++  java
  • Android之JNI:Android Studio使用Android.mk编译C/C++源码

    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目录即可。




  • 相关阅读:
    013.ES6 -对象字面量增强型写法
    012. ES6
    011. ES6 语法
    10. 9. Vue 计算属性的setter和getter 以及 计算属性的缓存讲解
    4. Spring MVC 数据响应方式
    3. SpringMVC 组件解析
    9. Vue 计算属性
    【洛谷 2984】给巧克力
    【洛谷 1821】捉迷藏 Hide and Seek
    【洛谷 1821】银牛派对Silver Cow Party
  • 原文地址:https://www.cnblogs.com/linux007/p/5782729.html
Copyright © 2011-2022 走看看