http://expert.csdn.net/Expert/topic/2371/2371126.xml?temp=.8609583
http://expert.csdn.net/Expert/topic/2175/2175926.xml?temp=.6408808

解决方案 »

  1.   

    谢谢,看了一下,有一篇太难了(SYSBASE的那篇)
    另一篇还行,可是我编译的时候提示找不到libclntsh.a,我在$ORACLE_HOME/lib下面找的时候,发现有libclntsh.so@和libclntsh.so.1.0这两个文件,请问这要怎么才能行?
      

  2.   

    用oracle用户运行在$ORACLE_HOME/lib目录下运行
    ln -s libclntsh.so.1.0 libclntsh.so 
    再试试
      

  3.   

    我试了试,这个命令是重新链接libclntsh.so,不会生成libclntsh.a,
    我make的时候说
    cc  -o demo demo.c  -I/usr/oracle/product/734/precomp/public                    -L/usr/oracle/product/734/lib -lclntsh
    i386ld demo.o: can't find library libclntsh.a
    *** Error code 1 (bu21)
    我找了很久都没有找到libclntsh.a
      

  4.   

    你是什么主机环境? 象hp-ux ,solaris等等操作系统上不会有.a文件的,就用.so,.sl。
      

  5.   

    我的是unix505 和ORACLE734。在lib下有很多.a的库文件,就那个是.so的文件。
      

  6.   

    你也可以在makefile中去掉
    -L$(ORACLEDIR)/lib -lclntsh
    然后直接把libclntsh.so.1.0作为目标文件包含进来,即改为类似如下的形式:
    cc -o demo $(OBJECT) -I$(ORACLE_HOME)/precomp/public $(ORACLE_HOME)/lib/libclntsh.so.1.0