小弟写一个简单的.pc文件,之后生成.c文件,可是当我编译的时候:
gcc   xxx.c -o xxx  又出现下列信息:undefined reference to 'sqlcxt'。我看网上说是需要在linux下加载libclntsh.so,具体应该怎样加载呢?希望大家能告诉我完整的gcc命令怎样写,万分感谢~

解决方案 »

  1.   

    1.precomp下的文件加入了库路径了吗?这是我使用的pcscfg.cfgsys_include=(/usr/include,/$ORACLE_HOME/precomp/public,/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include,/usr/lib/gcc-lib/i386-redhat-linux7/2.96/include, $ORACLE_HOME/lib)
    include=($ORACLE_HOME/precomp/public)
    include=$ORACLE_HOME/precomp/hdrs
    include=$ORACLE_HOME/tpcc2x_2/src
    include=$ORACLE_HOME/precomp/include
    include=$ORACLE_HOME/oracore/include
    include=$ORACLE_HOME/oracore/public
    include=$ORACLE_HOME/rdbms/include
    include=$ORACLE_HOME/rdbms/public
    include=$ORACLE_HOME/rdbms/demo
    include=$ORACLE_HOME/nlsrtl/include
    include=$ORACLE_HOME/nlsrtl/public
    include=$ORACLE_HOME/network_src/include
    include=$ORACLE_HOME/network_src/public
    include=$ORACLE_HOME/network/include
    include=$ORACLE_HOME/network/public
    include=$ORACLE_HOME/plsql/public
    ltype=short
    char_map=string
      

  2.   

    1、用proc预编译时,要预编译为.cpp文件!!!而不是默认的.c文件。
    2、在.c文件里加上 extern "c"
                      {
                               提示出错的函数
                       }
      

  3.   

    .pc .c: $proc iname=sample1.pc oname=sample1.c
    .c .o $cc –c sample1.c
    .o 可执行文件$cc –L$ORACLE_HOME/lib –lclntsh –o sample1 sample1.o