swig工具介绍

来源:互联网 发布:淘宝直播小二钉钉群 编辑:程序博客网 时间:2024/05/21 02:54

     SWIG 是一个非常优秀的开源工具,支持您将 C/C++ 代码与任何主流(脚本)语言(Ruby、Perl、JAVA、c#)相集成。 能根据定义的规则(*.i)文件生成供其它主流(脚本)语言调用的代码。


基本的使用指南http://www.swig.org/tutorial.html


一个示例:


print_hello.h

#ifndef PRINT_HELLO_H__
#define PRINT_HELLO_H__

#ifdef __cplusplus
extern "C" {
#endif
void print();
#ifdef __cplusplus
}
#endif
#endif



print_hello.cpp
#include "print_hello.h"
#include <stdio.h>

void print()
{
  printf("hello swig\n");
}



print_hello.i

%module print_hello
%{
extern void print();
%}

extern void print();


main.java

 public class main {
   public static void main(String argv[]) {
 //    System.out.println(System.getProperty("java.library.path"));
     System.loadLibrary("print_hello");
     print_hello.print();
   }
 }


build.sh

swig -java print_hello.i
gcc -fPIC -c print_hello.cpp print_hello_wrap.c -I/usr/lib/jvm/java-6-openjdk-amd64/include
gcc -shared print_hello.o print_hello_wrap.o -o libprint_hello.so
javac main.java



运行:

export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
java main


输出:

hello swig



0 0
原创粉丝点击