1、获取libiconv-1.15.tar.gz。
2、获取CTP linux 64 的完整包( 包含有 编译好的 libthostmduserapi.so 、 libthosttraderapi.so、 libthosttraderapi_wrap.so),到linux上面解压。
3、解压包:把上一篇CTP Win64 JAVA_API产生的thosttraderapi_wrap.cpp
和thosttraderapi_wrap.h
两个文件拷贝到linux相应的目录底下,去掉thosttraderapi_wrap.cpp首行#include "stdafx.h"
。
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# ll
总用量 12640
-rw-r--r--. 1 root root 184 10月 12 09:25 error.dtd
-rw-r--r--. 1 root root 16121 10月 12 09:25 error.xml
-rw-r--r--. 1 root root 5398 10月 12 09:25 ThostFtdcMdApi.h
-rw-r--r--. 1 root root 33731 10月 12 09:25 ThostFtdcTraderApi.h
-rw-r--r--. 1 root root 242039 10月 12 09:25 ThostFtdcUserApiDataType.h
-rw-r--r--. 1 root root 221843 10月 12 09:25 ThostFtdcUserApiStruct.h
-rw-r--r--. 1 root root 2020538 10月 12 16:11 thostmduserapi.so
-rw-r--r--. 1 root root 4706747 10月 12 16:11 thosttraderapi.so
-rw-r--r--. 1 root root 5649793 10月 12 10:59 thosttraderapi_wrap.cpp
-rw-r--r--. 1 root root 19187 10月 12 10:57 thosttraderapi_wrap.h
4、解压libiconv-1.15.tar.gz到linux目录,安装 libiconv
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# tar zxvf libiconv-1.15.tar.gz .
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# rm -rf zxvf libiconv-1.15.tar.gz
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# cd libiconv-1.15
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# ./configure --prefix=/usr/local
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# make && make install
此时 /usr/local/lib 目录下可看到 ibiconv.so 文件了
[root@slave1 lib]# cd /usr/local/lib
[root@slave1 lib]# ll
总用量 2840
-rw-r--r--. 1 root root 221 10月 12 10:39 charset.alias
-rw-r--r--. 1 root root 43368 10月 12 10:39 libcharset.a
-rwxr-xr-x. 1 root root 937 10月 12 10:39 libcharset.la
lrwxrwxrwx. 1 root root 19 10月 12 10:39 libcharset.so -> libcharset.so.1.0.0
lrwxrwxrwx. 1 root root 19 10月 12 10:39 libcharset.so.1 -> libcharset.so.1.0.0
-rwxr-xr-x. 1 root root 32576 10月 12 10:39 libcharset.so.1.0.0
-rwxr-xr-x. 1 root root 913 10月 12 10:39 libiconv.la
lrwxrwxrwx. 1 root root 17 10月 12 10:39 libiconv.so -> libiconv.so.2.6.0
lrwxrwxrwx. 1 root root 17 10月 12 10:39 libiconv.so.2 -> libiconv.so.2.6.0
-rwxr-xr-x. 1 root root 1419392 10月 12 10:39 libiconv.so.2.6.0
-rw-r--r--. 1 root root 1393576 10月 12 10:39 preloadable_libiconv.so
[root@slave1 lib]#
5、把 libiconv.so.2.6.0 复制到 CTP解压目录下面,修改 thostmduserapi.so 和 thosttraderapi.so 名称,创建文件makefile
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# mv thostmduserapi.so libthostmduserapi.so
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# mv thosttraderapi.so libthosttraderapi.so
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# touch makefile
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# ll
总用量 17928
-rw-r--r--. 1 root root 184 10月 12 09:25 error.dtd
-rw-r--r--. 1 root root 16121 10月 12 09:25 error.xml
-rw-r--r--. 1 root root 1419392 10月 12 16:14 libiconv.so.2.6.0
-rw-r--r--. 1 root root 2020538 10月 12 16:14 libthostmduserapi.so
-rw-r--r--. 1 root root 4706747 10月 12 16:14 libthosttraderapi.so
-rw-r--r--. 1 root root 506 10月 12 16:14 makefile
-rw-r--r--. 1 root root 5398 10月 12 09:25 ThostFtdcMdApi.h
-rw-r--r--. 1 root root 33731 10月 12 09:25 ThostFtdcTraderApi.h
-rw-r--r--. 1 root root 242039 10月 12 09:25 ThostFtdcUserApiDataType.h
-rw-r--r--. 1 root root 221843 10月 12 09:25 ThostFtdcUserApiStruct.h
-rw-r--r--. 1 root root 5649793 10月 12 10:59 thosttraderapi_wrap.cpp
-rw-r--r--. 1 root root 19187 10月 12 10:57 thosttraderapi_wrap.h
7、回到CTP解压目录,编辑makefile 注意:$(CC)和-rm 前面用Tab键,不要用空格键。
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. -lthostmduserapi -lthosttraderapi
$(TARGET) : $(OBJS)
$(CC) $(CPPFLAG) $(INCLUDE) -o $(TARGET) $(OBJS) $(LDLIB) ./libiconv.so.2.6.0
$(OBJS) : %.o : %.cpp
$(CC) -c -fPIC $(INCLUDE) $< -o $@
clean:
-rm -f $(OBJS)
-rm -f $(TARGET)
install:
cp $(TARGET) /usr/lib
8、执行make命令
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# make
会产生需要的SO文件
[root@slave1 v6.3.11_20180109_api_tradeapi_linux64]# ll
总用量 21092
-rw-r--r--. 1 root root 184 10月 12 09:25 error.dtd
-rw-r--r--. 1 root root 16121 10月 12 09:25 error.xml
-rw-r--r--. 1 root root 1419392 10月 12 16:14 libiconv.so.2.6.0
-rw-r--r--. 1 root root 2020538 10月 12 16:14 libthostmduserapi.so
-rw-r--r--. 1 root root 4706747 10月 12 16:14 libthosttraderapi.so
-rw-r--r--. 1 root root 3986800 10月 12 16:14 libthosttraderapi_wrap.so
-rw-r--r--. 1 root root 506 10月 12 16:14 makefile
-rw-r--r--. 1 root root 5398 10月 12 09:25 ThostFtdcMdApi.h
-rw-r--r--. 1 root root 33731 10月 12 09:25 ThostFtdcTraderApi.h
-rw-r--r--. 1 root root 242039 10月 12 09:25 ThostFtdcUserApiDataType.h
-rw-r--r--. 1 root root 221843 10月 12 09:25 ThostFtdcUserApiStruct.h
-rw-r--r--. 1 root root 5649793 10月 12 10:59 thosttraderapi_wrap.cpp
-rw-r--r--. 1 root root 19187 10月 12 10:57 thosttraderapi_wrap.h
-rw-r--r--. 1 root root 3238856 10月 12 16:31 thosttraderapi_wrap.o
9、将libthostmduserapi.so 、libthosttraderapi.so、libthosttraderapi_wrap.so 加入到java.library.path 参考
Linux 设置java.library.path
10、把上一篇的 ThostTraderAPI 工程打包到linux上面运行
[root@slave1 tradeapi]# java -jar ctp-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.5.RELEASE)
2018-10-12 14:30:33.074 INFO 14716 --- [ main] com.ctp.ThosttraderapiApplication : Starting ThosttraderapiApplication v0.0.1-SNAPSHOT on slave1 with PID 14716 (/usr/local/tradeapi/ctp-0.0.1-SNAPSHOT.jar started by root in /usr/local/tradeapi)
2018-10-12 14:30:33.094 INFO 14716 --- [ main] com.ctp.ThosttraderapiApplication : No active profile set, falling back to default profiles: default
2018-10-12 14:30:33.149 INFO 14716 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@16b4a017: startup date [Fri Oct 12 14:30:33 CST 2018]; root of context hierarchy
java.library.path:/usr/local/tradeapi/os:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2018-10-12 14:30:33.902 INFO 14716 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-10-12 14:30:33.928 INFO 14716 --- [ main] com.ctp.ThosttraderapiApplication : Started ThosttraderapiApplication in 1.388 seconds (JVM running for 1.909)
On Front Connected
Brokerid[,登陆成功,0]
订阅成功
交易日20181012
合约代码[v1901]最新价[6735.000000]时间[20181012 14:30:33:0]
合约代码[cu1811]最新价[50830.000000]时间[20181012 14:30:33:0]
合约代码[cu1811]最新价[50830.000000]时间[20181012 14:30:33:500]
合约代码[v1901]最新价[6735.000000]时间[20181012 14:30:33:500]
合约代码[cu1811]最新价[50830.000000]时间[20181012 14:30:34:0]
合约代码[v1901]最新价[6735.000000]时间[20181012 14:30:34:0]
合约代码[cu1811]最新价[50830.000000]时间[20181012 14:30:34:500]
合约代码[v1901]最新价[6735.000000]时间[20181012 14:30:34:500]
合约代码[cu1811]最新价[50830.000000]时间[20181012 14:30:35:0]
合约代码[v1901]最新价[6735.000000]时间[20181012 14:30:35:0]
合约代码[cu1811]最新价[50830.000000]时间[20181012 14:30:35:500]
合约代码[v1901]最新价[6735.000000]时间[20181012 14:30:35:500]