写android.mk的常见错误
来源:互联网 发布:js animate transform 编辑:程序博客网 时间:2024/06/05 11:19
最近在研究如何在android上写c代码,对ndk有一些体会,列出一些困扰我多时的问题,以便以后注意
假设我将所有的.h .cpp文件都放入jni下一个叫algorithm的文件夹
(1)在jni下需要写两个文件:Android.mk和XXX.cpp
后一个可以通过类似于javah -jni com.jwj.Core(包名+类名)来生成,生成后是个.h文件,实现里面的函数,并将其改为诸如interface.cpp
前一个的内容诸如:
TOP_LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
LOCAL_PATH := $(TOP_LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE := core
LOCAL_C_INCLUDES := /home/jwj/software/OpenCV_245/sdk/native/jni/include
LOCAL_SRC_FILES := interface.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog -lz
LOCAL_STATIC_LIBRARIES = algorithm
include $(BUILD_SHARED_LIBRARY)
第二行容易漏,它是说要便利子目录下的Android.mk文件,不加的话,会报:
LOCAL_C_INCLUDES是指示opencv的目录在哪,所有Android.mk文件都要加,否则会报:
opencv2/core/core.hpp: No such file or directory
LOCAL_LDLIBS是为了加上漏掉的两个库log和zip,否则会报:
error: undefined reference to 'gzclose'
error: undefined reference to 'gzeof'
等错误。
注意algorithm是我们现在需要用到的静态库,之后会编入成名为core的动态库
(2)algorithm文件夹中的android.mk
刚才说的那个algorithm是如何编译出的呢?也是通过一个android.mk编译的。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_LIB_TYPE:=STATIC
include /home/jwj/software/OpenCV_245/sdk/native/jni/OpenCV.mk
LOCAL_MODULE := algorithm
LOCAL_C_INCLUDES := /home/jwj/software/OpenCV_245/sdk/native/jni/include
LOCAL_SRC_FILES := Core.cpp\
init.cpp\
FaceProcess.cpp\
include $(BUILD_STATIC_LIBRARY)
为什么这里只是指定了.cpp的路径?因为.h文件默认会到当前目录下找了。
很容易看出,这个makefile的功能是编译出一个名为algorithm的静态库
- 写android.mk的常见错误
- JNI开发的常见错误&&Android.mk文件说明&& jni开发的简便流程
- 如何写Android.mk
- 如何写Android.mk
- 如何写Android.mk
- 如何写Android.mk
- 学习写Android.mk
- Android.mk错误
- android mk编译错误
- android Android.mk 怎么写
- android Android.mk 怎么写
- 整理常见Android.mk写法
- 如何写一个Android.mk
- PCB常见的错误分析yingxuexuan写
- 写代码常见错误
- Android的android.mk
- android的Android.mk
- Android - 常见错误的解决方法
- hdu 1010 Tempter of the Bone
- 不是通过引用或指针调用的话,无法产生多态的效果
- 关节点(atriculation point)算法
- python多线程学习
- 怎么判断按键是系统的左右哪一个键
- 写android.mk的常见错误
- ubuntu10.10 tftp安装,配置,测试
- 晶体管基础知识
- 在android中使用junit
- Adobe Dreamweaver CS6 破解
- 关于Hadoop 的配置信息
- No result defined for action com.niit.ssh2.action.BookAction and result success
- [031] 微信公众帐号开发教程第7篇-文本消息中换行符的使用
- 总结:复合数据对象