Android.mk文件解析(一)
来源:互联网 发布:大量数据找规律 编辑:程序博客网 时间:2024/06/16 19:40
贴代码:
test.h
int adds(int a,int b);int subs(int a,int b);
test.c
#include "test.h"int adds(int a,int b){ return (a-b);}int subs(int a,int b){ return (a+b);}
com_ycan_ycantestlib.h
/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_ycan_ycantestlib */#ifndef _Included_com_ycan_ycantestlib#define _Included_com_ycan_ycantestlib#ifdef __cplusplusextern "C" {#endif/* * Class: com_ycan_ycantestlib * Method: add * Signature: (II)I */JNIEXPORT jint JNICALL Java_com_ycan_ycantestlib_add (JNIEnv *, jobject, jint, jint);/* * Class: com_ycan_ycantestlib * Method: sub * Signature: (II)I */JNIEXPORT jint JNICALL Java_com_ycan_ycantestlib_sub (JNIEnv *, jobject, jint, jint);#ifdef __cplusplus}#endif#endif
com_ycan_ycantestlib.cpp
include "com_ycan_ycantestlib.h"#ifdef __cplusplusextern "C" {#endif#include "test.h"#ifdef __cplusplus}#endifJNIEXPORT jint JNICALL Java_com_ycan_ycantestlib_add (JNIEnv *evn, jobject thiz, jint a, jint b){ int c =adds(a,b); return c;}JNIEXPORT jint JNICALL Java_com_ycan_ycantestlib_sub (JNIEnv *evn, jobject thiz, jint a, jint b){ int c =subs(a,b); return c;}
Android.mk
#Android.mk和需要编译的源文件在同一目录下#LOCAL_PATH:= $(call my-dir)#源文件列表#common_SRC_FILES :=\ test.c \ com_ycan_ycantestlib.cpp#头文件列表#common_C_INCLUDES :=\ test.h \ com_ycan_ycantestlib.h#模块开始#include $(CLEAR_VARS)#源文件列表#LOCAL_SRC_FILES := $(common_SRC_FILES) #头文件列表#LOCAL_C_INCLUDES += $(common_C_INCLUDES)#生成的程序名#LOCAL_MODULE:= com_ycan_ycantestlib #此处有三个选择:可执行程序,动态库,静态库#include $(BUILD_SHARED_LIBRARY)
这是c++调用c的情况,解决问题的关键就是com_ycan_ycantestlib.cpp中的这段:
#ifdef __cplusplus extern "C" { #endif #include "test.h" #ifdef __cplusplus } #endif
反过来,也是一样的,需要注意的是这段只能加在c++代码中。
0 0
- Android.mk文件解析(一)
- android.mk 文件解析
- Android.mk文件解析
- 解析Android.mk文件
- Android.mk文件解析
- android.mk文件解析
- Android.mk文件解析
- Android Android.mk文件解析
- Android Android.mk文件解析
- Android.mk文件解析(二)
- Android.mk文件的解析
- Android .mk文件语法解析
- Android .mk文件语法解析
- Android.mk编译文件解析
- Android .mk文件语法解析
- Android .mk文件语法解析
- Android .mk文件语法解析
- Android中的Android.mk文件解析
- OpenCV Haar特征分类器的训练
- 阿里云存储oss 的9个技巧
- 理解 pkg-config 工具
- 前端资源
- tomcat报错误 Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]
- Android.mk文件解析(一)
- iOS 清除UITableView底部多余的分割线
- First-SwiftProduct
- tomcat启动报错
- Android.mk文件解析(二)
- flex4 AdvancedDataGrid 加超链接
- maven setting的配置说明
- BYD(比亚迪)样片申请与经验
- maven打包编译的异常 :sun.misc.BASE64Decoder 是 Sun 的专用 API,可能会在未来版本中删除的解决方法