对编译oci时链接的动态库的总结

1838阅读 0评论2009-06-10 gawk
分类:C/C++

近日,做了一个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动态库就行了
上一篇:oci 7.3.4头文件及链接库
下一篇:raid介绍