swig官网教程:http://www.swig.org/tutorial.html
swigwin下载地址:https://sourceforge.net/projects/swig/files/swigwin/
安装后为了方便,可以添加安装目录到环境变量path。
本文主要是手把手教萌新们如何用官方用例构建(有许多本人亲身采坑血泪史)
首先我们看一个最简单的例子,如何用swig让java调用c。这里使用的是mingw和java8。
首先构建如下example.c文件
#includedouble My_variable = 3.0; int fact(int n) { if (n <= 1) return 1; else return n * fact(n - 1); } int my_mod(int x, int y) { return (x % y); } char *get_time() { time_t ltime; time(<ime); return ctime(<ime); }
之后构建example.i文件
%module example %{ extern double My_variable; extern int fact(int n); extern int my_mod(int x, int y); extern char *get_time(); %} extern double My_variable; extern int fact(int n); extern int my_mod(int x, int y); extern char *get_time();
在当前目录打开cmd,然后输入:
$ swig -java example.i $ gcc -c example.c example_wrap.c -I "C:Program Filesjdk1.8.0_262include" -I "C:Program Filesjdk1.8.0_262includewin32" $ gcc -shared example.o example_wrap.o -mno-clwb -Wl,--add-stdcall-alias -o example.dll
创建main.java
public class main { public static void main(String argv[]) { System.loadLibrary("example"); System.out.println(example.getMy_variable()); System.out.println(example.fact(5)); System.out.println(example.get_time()); } }
$ javac main.java $ java main 3.0 120 Mon Mar 4 18:20:31 2002 $
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)