摘自 http://www.swig.org/translations/chinese/tutorial.html
/* File : example.c */ #include <time.h> double 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 %{ /* Put header files here or function declarations like below */ 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();
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()); } }
编译运行:
% swig -java example.i % gcc -fpic -c example.c example_wrap.c -I/usr/java/jdk1.4.2/include -I/usr/java/jdk1.4.2/include/linux % gcc -shared example.o example_wrap.o -o libexample.so % javac main.java % java main % LD_LIBRARY_PATH=$LD_LIBRARY_PATH:libexample.so所在目录 java main
相关推荐
`Swig`(Simplified Wrapper and Interface Generator)是一个强大的工具,它允许我们创建接口,使得Java等高级语言能够调用C或C++编写的库。本实例主要讲解如何使用Swig来实现Java调用C代码,并通过DLL动态链接库...
编译完成后,在 <gdal-dir>/swig/java 目录下将生成一个 gdal.jar 文件和一些新的文件,其中包括四个含 jni 的 so 文件。 3. GDAL 调用 在调用 GDAL 之前,需要新建一个 Java 项目,名为 GDALTest。然后,需要导入...
配置环境变量JAVA_BIN和JAVA_INCLUDE。比如: JAVA_BIN:C:\Program Files\Java\jdk-12.0.2\bin JAVA_INCLUDE:C:\Program Files\Java\jdk-12.0.2\include 进入Examples\java\simple目录,用VS2019打开example.dsp。...
`%module testswig`定义了生成的Java/C#模块名称。 然后,使用SWIG命令行工具生成Java和C#的绑定代码: ```bash swig -java -c++ swiginterface.i swig -csharp -c++ swiginterface.i ``` 这将分别生成“testswig...
- 在gdalsrc/swig/java/目录下找到nmake.opt文件,并设置Java_Home变量指向JDK的安装路径。 #### 四、编译执行 1. **启动X64命令提示符**:通过Visual Studio 2010自带的X64命令提示符启动。 2. **切换目录**:...
接着,由于GDAL原生并不支持Java,所以要用到SWIG(Simplified Wrapper and Interface Generator)工具来生成Java接口,使得Java能够调用GDAL的C++函数。 “遥感影像提取元信息和缩略图的示例代码”这部分意味着,...
SWIG支持和实验性支持的语言模块涵盖了广泛的高级语言,包括但不限于Python、Perl、Ruby、PHP、Tcl、Java、C#、Objective-C等。对于这些语言,SWIG能够识别相应的语法和构建规则,生成相应的包装代码。文档中提到的...
借助SWIG实现的CTP-java接口,测试程序见org.hraink.futures.jctp.test.Test。参考了csdn上的相关资料,分享出来供大家参考。
java 调用C swig
SWIG是用于生成C/C++与Java或其他脚本语言之间接口的工具。通过SWIG,我们可以轻松地将C/C++函数暴露给Android的Java层。安装SWIG后,需要配置环境变量,以便在Cygwin中使用它。 现在,让我们进入实际的步骤。假设...
支持语言列表中也包括非脚本编译语言,例如C#, Common Lisp (CLISP, Allegro CL, CFFI, UFFI), Java, Modula-3, OCAML以及R,甚至是编译器或者汇编的计划应用(Guile, MzScheme, Chicken)。SWIG普遍应用于创建高级...
SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于自动构建接口,使得C和C++的库可以被多种高级脚本语言如Python、Perl、Java等调用。在这个"swig-4.0.2-windows版本安装包"中,我们有两个...
Swig(Simplified Wrapper and Interface Generator)则是一个工具,用于自动生成C++、Java等语言之间的接口,使得本地代码能够与Java代码交互。 本示例“android ndk swig例子”显然是一个关于如何在Android项目中...
编译过程中,SWIG会生成Java接口文件,这些文件在GDAL的Java绑定中很重要。 GDAL的Java API允许Java开发者访问GDAL的核心功能,包括读取、写入和处理地理空间数据。这些API包括对栅格数据集、矢量数据集、坐标系统...
1. **语言支持**:SWIG支持众多脚本语言,如Python、Java、PHP、JavaScript等,允许开发者将C/C++库无缝集成到这些环境中。 2. **接口自动生成**:SWIG通过分析C/C++头文件来生成所需的接口代码,减少手动编写的工作...
而SWIG(Simplified Wrapper and Interface Generator)是一个开源工具,它能帮助我们自动地生成C++与Java之间的绑定代码,使得我们可以轻松地在Java层调用C++的函数。 本文将详细介绍如何在Android Studio项目中...
它使得C或C++的程序可以方便地与多种高级语言,如Python、Java、Perl、Tcl、Ruby等进行交互。SWIG通过解析C或C++的头文件,生成相应的接口代码,从而让这些语言能够调用原生的C/C++函数和对象。 SWIG的核心功能在于...
SWIG is a compiler that takes C/C++ declarations and creates the wrappers needed to access those declarations from other languages including including Perl, Python, Tcl, Ruby, Guile, and Java....
- **3.2.1.2 Java** - **3.2.1.3 Perl** - **3.2.1.4 Python** - **3.2.1.5 TCL** - **3.2.1.6 R** - **3.2.1.7 Ruby** **3.3 SWIG 在 Cygwin 和 MinGW 上的使用** - **3.3.1 构建 swig.exe** SWIG 可以在 ...
SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,它能自动将C或C++库封装为多种高级语言,如Python、Perl、Java等。在本案例中,我们讨论的是SWIG的3.0.12版本针对Windows操作系统的安装过程...