SWIG 之一:基础入门

Posted kuliuheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SWIG 之一:基础入门相关的知识,希望对你有一定的参考价值。

1、入门概念

  SWIG支持将C/C++接口封装成其他语言形式,我这里需要转换成JNI (Java)接口。

  首先请参考:SWIG官方文档

2、编译命令

autowrapper -c++ -java -package com.kuliuheng.test -outdir ./java -o ./jni/JNI_testWrap.cpp -IE:autoWrapperLib -IE:autoWrapperLibjava test.i

  这里面参数含义依次为:

-c++        表示是封装C++接口,如果不带此参数则默认为C接口
-java       表示封装接口的目标语言Java,其他语言类型支持参看官方文档
-package    此参数为Java语言特有的,表示指定生成的Java包名
-outdir     指定生成的Java文件存储路径,如果不指定则默认当前目录
-o          指定生成的C++接口包装文件存储路径和目标文件名,如果不指定则默认同目录
-I          指定依赖配置文件、库文件的路径

   目前文件test.i是SWIG的配置文件,其内容大致是这样的:

/* File : test.i */
%module testModule

%{
#include "test_main.h"
%}

%nspace test::MyClass;
%nspace test::Numbers;
%nspace test::VAR_IN_TEST;
%mutable;

%javaconst (1);
%include "enumtypeunsafe.swg" 
%include "test_main.h"

 

以上是关于SWIG 之一:基础入门的主要内容,如果未能解决你的问题,请参考以下文章

SWIG 之三:“11 Typemaps”

如何使用 swig 修改类构造函数以保持对构造函数参数之一的引用?

SWIG 和 Visual Studio 入门

SWIG 3 中文手册——5. SWIG 基础知识

MongoDB基础入门之一:基础入门和复制集

Java语言基础之方法的设计