Android ndk开发swig编译jni接口配置文件(二)
2015-04-18 10:11
225 查看
之前写过一篇Android ndk开发swig编译jni接口。看这篇看不懂,看以去看看。c++与Java有些语言结构还是有一定区别,比如c++结构体,一些函数的返回值等都是有所不同,进行swig编译要进行一些预处理,也就是配置一下就行。下面说说几种情况。
一、一般情况下string,数组,枚举类型等配置Unix.i
二、计算返回double类型配置Unix.i
1、首先现在c++的CPosiOffset.h文件配置函数
2、在对应的c++ CPosiOffset.cpp文件
3.在Unix.i配置如下
以上两种通用配置Application以及Android
1.Application
2. Android
三. 讲一下函数返回是的结构体配置
1.在CPosiOffset.h文件配置函数
在上面头文件加上
2. 在CPosiOffset.cpp里面不用做处理
3. 在在Unix.i配置如下
4.Android
5.Application
到这里就结束了,具体有些看不懂语句意思,可以复制去百度,其实ndk开发有很多类型,网上也有不同编译方法。我介绍四不用自已写包名什么,都是自动编译产生。
刚刚看到排版太难看了,我把它删了,重新编辑一篇。也是希望提供大家学习交流,自已方便查阅。
一、一般情况下string,数组,枚举类型等配置Unix.i
%module Survey %include "std_string.i" %include "arrays_java.i" %include "typemaps.i" %include "enums.swg" %{ #include <src\PosiOffset.cpp> %} %include <src\PosiOffset.h>
二、计算返回double类型配置Unix.i
1、首先现在c++的CPosiOffset.h文件配置函数
#ifndef SWIG /// 计算结果 bool GetOffset(double& dCx, double& dCy, double& dCh); #else /// 计算结果 bool GetOffset(double& OUTPUT, double& OUTPUT, double& OUTPUT); #endif //SWIG
2、在对应的c++ CPosiOffset.cpp文件
/// 计算结果,并获取偏移采集坐标 bool CPosiOffset::GetOffset(double& dCx, double& dCy, double& dCh) { dCx= dCy= dCh= return true; }
3.在Unix.i配置如下
%module Survey %include "std_string.i" %include "arrays_java.i" %include "typemaps.i" %include "enums.swg"%apply double& OUTPUT {double& result} //加上这一句 %{ #include <src\PosiOffset.cpp> %} %include <src\PosiOffset.h>
以上两种通用配置Application以及Android
1.Application
APP_ABI := armeabi APP_STL := stlport_static
2. Android
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := PosiLib LOCAL_SRC_FILES := Unix_wrap.cxx include $(BUILD_SHARED_LIBRARY)
三. 讲一下函数返回是的结构体配置
1.在CPosiOffset.h文件配置函数
在上面头文件加上
#ifndef _POSI_OFFSET_H_ #define _POSI_OFFSET_H_ #include "DefineStructure.h" #include "PosiOffset.h" #ifdef SWIG %apply double& OUTPUT {double& result} %feature ("director") CPosiOffset; #endif
2. 在CPosiOffset.cpp里面不用做处理
3. 在在Unix.i配置如下
%module Survey %module(directors = 1) Unix //加上这一句 %include "std_string.i" %include "arrays_java.i" %include "typemaps.i" %include "enums.swg" %{ #include <src\PosiOffset.cpp> %} %include <src\PosiOffset.h>
4.Android
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := PosiLib LOCAL_SRC_FILES := Unix_wrap.cxx LOCAL_CPP_FEATURES += rtti include $(BUILD_SHARED_LIBRARY)
5.Application
APP_CFLAGS += -fexceptions APP_STL := gnustl_static APP_PALTFORM := android-9
到这里就结束了,具体有些看不懂语句意思,可以复制去百度,其实ndk开发有很多类型,网上也有不同编译方法。我介绍四不用自已写包名什么,都是自动编译产生。
刚刚看到排版太难看了,我把它删了,重新编辑一篇。也是希望提供大家学习交流,自已方便查阅。
相关文章推荐
- Android ndk开发swig编译jni接口
- android NDK开发编译C++文件出现Type 'jint' could not be resolved和Unresolved inclusion: <jni.h>的解决办法
- 不使用Cygwin,在eclipse中快速开发JNI,一键生成C头文件.h,以及一键使用NDK交叉编译
- android NDK开发编译C++文件出现Type 'jint' could not be resolved和Unresolved inclusion: <jni.h>的解决办法
- 不使用Cygwin,在eclipse中快速开发JNI,一键生成C头文件.h,以及一键使用NDK交叉编译
- windows下用ADT进行android NDK开发的详细教程(从环境搭建、配置到编译全过程)
- php扩展开发笔记(2)多个源码文件的配置和编译
- Android NDK (学习笔记七) —— JNI的交互处理之Eclipse开发工具配置
- 不使用Cygwin,在eclipse中快速开发JNI,一键生成C头文件.h,以及一键使用NDK交叉编译
- 不使用Cygwin,在eclipse中快速开发JNI,一键生成C头文件.h,以及一键使用NDK交叉编译
- eclipse里配置Android ndk环境,用eclipse编译.so文件
- Android NDK 开发中配置javah 生成 .h 文件
- android NDK开发编译C++文件出现Type 'jint' could not be resolved和Unresolved inclusion: <jni.h>的解决办法
- windows下用ADT进行android NDK开发的详细教程(从环境搭建、配置到编译全过程)
- Android Eclipse 进阶JNI开发一: NDK自动编译于eclipse自动生成jni头文件
- android NDK开发编译C++文件出现Type 'jint' could not be resolved和Unresolved inclusion: <jni...
- 不使用Cygwin,在eclipse中快速开发JNI,一键生成C头文件.h,以及一键使用NDK交叉编译
- Eclipse 快速开发生成Android JNI头文件及NDK交叉编译
- 【android ndk】macos环境下Android Studio中利用gradle编译jni模块及配置
- PHP Strom 配置less 并设置编译后在远程开发模式下自动上传css文件