CMake - SWIG - 移植动态库
来源:互联网 发布:mac如何解压缩软件 编辑:程序博客网 时间:2024/06/05 06:22
CMake - SWIG
最后更新日期:2014-04-25 bykagula
阅读前提:《CMake入门(二)》、《同Java的混合编程-SWIG》、Linux的基本操作、java基础知识
环境:Windows 8.1 64bit英文版,Visual Studio 203 Update1英文版,CMake 2.8.12.2、 Cent OS 6.5、SWIG 3.0.0。
内容简介
介绍本人在《同Java的混合编程-SWIG》这篇笔记上提到的SWIG_Tutorial4和SWIG_Tutorial4_Java项目如何移到Cent OS上。
正文
用Visual Studio打开SWIG_Tutorial4项目,在项目中添加CMakeLists.txt文件
#设置项目名称
PROJECT(SWIG_Tutorial4)
#要求CMake的最低版本为2.8
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
#添加头文件搜索路径
#下面两个是Cent OS下Java开发包的默认头文件路径
INCLUDE_DIRECTORIES(/usr/lib/jvm/java/include)
INCLUDE_DIRECTORIES(/usr/lib/jvm/java/include/linux)
#添加库文件搜索路径
#下面两个是Cent OS下Java开发包的默认库文件路径
LINK_DIRECTORIES(/usr/lib/jvm/java/lib)
#用于将当前目录下的所有源文件的名字保存在变量 DLL_SRC中
AUX_SOURCE_DIRECTORY(. DLL_SRC)
#用于指定从一组源文件 source1 source2 …sourceN(在变量DLL_SRC中定义)
#根据“SWIG_Tutorial4”名称编译出“libSWIG_Tutorial4.so”名称的动态链接库
#如果下面不加SHARED那编译出的是“libSWIG_Tutorial4.a”静态链接库
ADD_LIBRARY(SWIG_Tutorial4SHARED ${DLL_SRC})
在Cent OS上安装java开发环境
#yum install java java-devel
可以使用下面的命令查看java 安装路径
$echo $JAVA_HOME
把SWIG_Tutorial4项目整个文件夹,复制到Cent OS上,并编译
$cd SWIG_Tutorial4
$mkdir build
$cd build
$cmake ..
$make
现在当前文件夹中就有了libSWIG_Tutorial4.so文件。 Linux下的动态链接库一般用so扩展名,相当于Windows下的DLL文件。
测试动态链接库
Cents OS下java.library.path缺省指向/usr/java/packages/lib/i386、/lib、/usr/lib三个目录,java程序会从这三个路径中去寻找动态链接库,所以我们把libSWIG_Tutorial4.so文件复制到/usr/lib路径中。
把Win系统上的SWIG_Tutorial4_Java项目整个源文件夹上传到Cent OS系统。
下面是SWIG_Tutorial4_Java项目目录树
SWIG_Tutorial4_Java
│ .classpath
│ .project
│ SWIG_Tutorial4.dll
│
├─.settings
│ org.eclipse.jdt.core.prefs
│
├─bin
│ HelloWorldFromC.class
│ MyJavaClass.class
│ SWIG_Tutorial4.class
│ SWIG_Tutorial4JNI.class
│
└─src
HelloWorldFromC.java
MyJavaClass.java
SWIG_Tutorial4.java
SWIG_Tutorial4JNI.java
进入下面文件夹
/home/kagula/Downloads/SWIG_Tutorial4_Java/bin
可以看到
HelloWorldFromC.class, MyJavaClass.class, SWIG_Tutorial4.class,SWIG_Tutorial4JNI.class四个文件。
使用下面的命令,调用java程序
$java MyJavaClass
就可以看到程序运行结果
参考资料
[1]《Tokyo Cabinet的安装,含Java版(Cent OS 5.4)》
http://www.coder4.com/archives/818
[2]《JNI Hello World 简单记录》-使用Open JDK + GCC做的第一个java程序
http://blog.csdn.net/acnt3w/article/details/8590300
- CMake - SWIG - 移植动态库
- 通过Swig封装JAVA Native Interface调用C++动态库
- Android移植lame库(采用CMake)
- cmake 链接动态链接库
- CMake 构建动态链接库
- 使用SWIG将C/C++库移植到其他语言中
- Android突破八.使用SWIG将C/C++库移植到其他语言中
- linux下使用SWIG将C/C++库移植到Java
- cmake ---动态库与静态库
- CMake 编译静态库和动态库
- CMake - 可执行文件 - 动态链接库 - libcurl
- cmake之链接外部动态库
- 通过Cmake创建动态库xxx.so
- cmake编译opencv链接动态库
- SWIG
- SWIG
- SWIG
- SWIG
- Java中的String不再纠结
- 你设计的应用是IO依赖型还是CPU依赖型?
- SQLite SQL语法详解
- 《Java并发编程实战》---线程安全性
- 如何自定义Tomcat Realm实现我们的用户认证需求
- CMake - SWIG - 移植动态库
- TypeError: 'module' object is not callable 原因分析
- 加油吧!少年!
- 之二:内核中list_head的理解
- 果博东方开户13427779966代理
- web安全:SQL注入
- 新锦江开户134-2777-9966
- JSON的数据格式表
- kVp与Kev