近日,做了一个oracle7.3.4版本的交互的oci程序,由于oci7和oci8以上函数差距很大,且oracle7的环境很难找到,给任务的完成带来了很大的困难。
经过对$ORACLE_HOME/rdbms/demo的研究,还是找到很多差异。首先讲讲链接库的不同
在Oracle8以上可以用-lclntsh来链接库文件
但是Oracle7上可能没有libclntsh.so文件
经过分析
添加如下红色部分内容在Makefile文件中可以不指定-lclntsh
include ${ORACLE_HOME}/rdbms/lib/env_rdbms.mk
#---------------------------- make变量定义------------------------------
SRCDIR = .
INCDIR = ../include
MYLIBDIR = ../shlib
OCIDIR=${ORACLE_HOME}/lib
NO_INCPATH = -I${SRCDIR} -I${INCDIR} \
-I${ORACLE_HOME}/rdbms/public\
-I${ORACLE_HOME}/rdbms/demo
BINLOC_DBTEST_LIB = \
$(LIBCLIENT) $(DEVTTLIBS) $(LLIBCORE)\
-lc
编译时加上BINLOC_DBTEST_LIB动态库就行了
阅读(1785) | 评论(0) | 转发(0) |