关键字:
C语言、驱动文件、人大金仓、KingbaseES
1、OCI编译过程
对于OCI应用程序编译前需要设置环境变量,KINGBASE_CONFDIR 、LD_LIBRARY_PATH分别设置配置文件所在路径、驱动文件所在路径。
gcc形式编译OCI应用程序:gcc -I./include DCITest.c -o test -L./dci -dcikdb -ldl –ml
-I 指定 引用的头文件路径;-L 指定引用的 DCI 动态库路径;-ldl 和-lm 是系统动态库,分别用于动态库加载和数学函数调用。
2、对于因openssl版本而导致编译不过的问题处理
目前线上代码有一部分功能依赖openssl-1.1.1及以上版本,对于一部分开发服务器上存在openssl不适配的问题(来自邮件)
(例如,openssl版本为1.1.1以上,但libssl.so的版本是1.0),现提供不升级服务器openssl版本且能编译通过的方法。
1、将附件openssl-1.1.1q放置在服务器并解压,并准备对其进行编译
2、在解压出的目录下执行如下指令,以指定编译后的安装目录
./config --prefix=`pwd`/install
3、在解压出的目录下执行编译并安装
make && make install
4、准备编译kingbase服务,先执行环境变量,指定openssl库和bin目录的位置
export PATH=/openssl目录/install/bin:$PATH
export LD_LIBRARY_PATH=/openssl目录/install/lib:$LD_LIBRARY_PATH
5、编译kingbase服务时,configure指令需要添加指定openssl库和头文件
./configure --prefix=`pwd`/release --with-zlib --enable-nls --enable-integer-datetimes --with-openssl
--with-libxml --with-uuid=e2fs --enable-cassert --enable-debug CFLAGS=-O0 --with-libs=/openssl目录/install/lib
--with-includes=/openssl目录/install/include
6、至此,kingbase服务可以正常编译
3、OCCI高版本环境下兼容openssl编译
1、export LD_LIBRARY_PATH=/opt/openssl-1.1.1q/lib:$LD_LIBRARY_PATH
2、设置环境变量仍然不通过,修改Makefile文件指定具体的ssl路径,否则寻找系统默认的ssl。
LD_LIBRARY_PATH可能在运行时使用,编译时候需要具体的指定绝对或者相对路径。