本仓库提供 redtorch 项目的rt-gateway-ctp模块的具体代码生成方法和跨平台运行方案细节。
- 准备GCC编译环境
- 安装JDK,并设置JAVA_HOME到环境变量中(编译需要访问使用jni.h和jni_md.h)
- 编译获取libiconv.a静态链接库
- 使用仓库中提供的压缩包或从libiconv官网下载压缩包
- 在解压后的目录中执行configure命令
例如
./configure --prefix=<目标目录> --enable-static=yes CFLAGS=-fPIC
目标目录请根据实际情况修改./configure --prefix=/home/sun0x00/libiconv-1.15-target --enable-static=yes CFLAGS=-fPIC
- 执行编译命令
make && make install
- 访问目标目录下的lib文件夹,获取libiconv.a文件,并将此文件复制到各版本Java-CTP的工作目录中
- 在各版本Java-CTP的工作目录中,分别执行make命令,即可获得封装后的链接库
- 在各版本Java-CTP的工作目录中,分别执行make clen命令,即可清除封装后的链接库
- 本仓库中提供的JNI(C++)源码来自仓库 swig-java-ctp
- 本仓库中提供的链接库so文件来自上期技术官网提供的各对应版本的SDK压缩包
- 如果尝试自建空白项目,请参考现存版本文件夹的内容准备文件,注意,需要重命名上上期技术提供的两个.so文件,分别在文件名之前加lib
- Windows环境下的编译方法请访问仓库 jctpapi-msvc
- 本仓库中提供的JNI(C++)源码已经解决CTP结算单乱码问题,具体实现细节请访问仓库 swig-java-ctp
- 关于编译后lib文件的使用,在makefile文件中存在如下配置
在实际使用过程中,编译后的链接库so文件可不安装到系统lib目录,复制到/tmp/xyz/redtorch/api/jctp/lib/jctpv6v6v1p1cpx64api/,可在Java代码中通过绝对路径加载。
LD_RUN_PATH=-Wl,-rpath,/tmp/xyz/redtorch/api/jctp/lib/jctpv6v6v1p1cpx64api/
- Linux环境下编译的Java-CTP链接库在使用时无需加载libiconv.so
- 编译后的Java-CTP链接库使用方法请参阅redtorch 项目的rt-gateway-ctp模块