CTP JAVA_API(JCTP)编译(利用Swig封装C++动态库)linux版64位

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/yishuihan1212/article/details/53187469

前言:上篇中已经讲了windows下的Java API编译,这篇讲linux的。

0 欢迎交流

CTP_API技术交流群:767101469

https://github.com/nicai0609/JAVA-CTPAPI


1 准备工作

  • 下载linux下的libiconv库,自己编译,我这里用到的是liviconv.a静态库,可以到我github上下我编译好的。
  • 从上期技术官网获得linux版本的tradeapi。拷贝到相应linux环境目录底下。

2 通过swig获得jar包

linux和windows下的jar包得到方式是一样的,参考上一篇,可以直接拿来用

3 编译得到包装动态库so

将上一篇中windows下的thosttraderapi_wrap.cppthosttraderapi_wrap.h两个文件拷贝到linux相应的目录底下。现在linux目录底下的文件应该如下

libiconv.a
ThostFtdcTraderApi.h
ThostFtdcUserApiStruct.h
thosttraderapi_wrap.h
libthosttraderapi.so
makefile
ThostFtdcUserApiDataType.h
thosttraderapi_wrap.cpp
iconv.h

其中makefile的内容如下:

OBJS=thosttraderapi_wrap.o
INCLUDE=-I./ -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux
TARGET=libthosttraderapi_wrap.so
CPPFLAG=-shared -fPIC
CC=g++
LDLIB=-L. -lthosttraderapi
$(TARGET) : $(OBJS)
        $(CC) $(CPPFLAG) $(INCLUDE) -o $(TARGET) $(OBJS) $(LDLIB) ./libiconv.a                                                                              
$(OBJS) : %.o : %.cpp
        $(CC) -c -fPIC $(INCLUDE) $< -o $@ 
clean:
        -rm -f $(OBJS)
        -rm -f $(TARGET)
install:
        cp $(TARGET) /usr/lib

执行make命令,得到libthosttraderapi_wrap.so库,说明编译成功。

4 Java Demo

将jar文件,两个动态库so文件,上一篇中的Demo.java文件拷贝到同一个文件夹test中,该文件夹中清单如下:

libthosttraderapi.so
libthosttraderapi_wrap.so
thosttraderapi.jar
Demo.java

在当前目录下执行命令:

javac -cp ./thosttraderapi.jar Demo.java

编译成功后,执行运行命令:

java -cp ./thosttraderapi.jar:./ Demo

可以看到运行成功。

Linux 64位 CTP JavaAPI 点击下载

猜你喜欢

转载自blog.csdn.net/yishuihan1212/article/details/53187469