zoukankan      html  css  js  c++  java
  • Linux 编译安装OciLib 4.x.x

    项目要用oracle , Windows的 OciLib 好弄, 今天安装到linux下 ,编译老是出错,最后几行如下:

    checking for OCILIB install path... /usr/local
    ls: cannot access *.html: No such file or directory
    ls: cannot access *.css: No such file or directory
    ls: cannot access *.png: No such file or directory
    checking for OCILIB version... v4.2.1 
    checking for OCILIB options... import: linkage, charset = ansi 
    checking for Oracle home... defined by environment : 
    checking for Oracle OCI headers location... configure: error: variable not set or unable to guess

    然后搜索 configure文件,最终发现是 oracle oci 的头文件的文件夹没找到;

    然后到oracle官网下载 instantclient-sdk-linux 又是一阵折腾,不知道他抽什么疯,死活不能下载, 下载页点击跳转就到错误页了~~~

    后来网上找了个下载,还好,能用(文件大小只有625KB), 地址:http://download.csdn.net/detail/lsxy117/5118691

    -------------------更新---------------- 2020/07/01

    instantclient 在这里下载: (需要注册,注册下就好了:)

    https://www.oracle.com/database/technologies/instant-client/downloads.html

    -----------------------------------------

    但是下载解压后 configure 文件里的路径居然没有include文件夹的配置,尼玛,自己写了(约第12775行处):

          # find out the Oracle public OCI headers path
          if test "$ac_headers_path" = NO; then
            if test "$ac_oracle_home" != NO; then
              test_include_path=$ac_oracle_home/rdbms/public
              if test -d "$test_include_path"; then
                ac_headers_path=$test_include_path
              else
                test_include_path=$ac_oracle_home/rdbms/demo
                if test -d "$test_include_path"; then
                  ac_headers_path=$test_include_path
                else
                  echo "line 12775 ,lzpong add this ac_headers_path to $ac_oracle_home/include , need to download instantclient-sdk-linux-xx.xx.xx.zip to get includes file!!!!"
                  ac_headers_path=$ac_oracle_home/include
                fi
              fi
            fi
          fi

    因为我是直接把sdk的include文件夹解压到 /usr/local/instantclient_12_1 的,所以 直接写了:

    ac_headers_path=$ac_oracle_home/include

    -------------------更新---------------- 2020/07/01

    可以不用改`makefile`,直接参数指定

    ./configure  CFLAGS="-O2 -m64" --with-oracle-lib-path=/usr/local/instantclient_12_1 --with-oracle-headers-path=/usr/local/instantclient_12_1/include

    CFLAGS 参数很重要, -m64 表示编译为64位。

    --with-oracle-lib-path 参数指定 lib 目录

    --with-oracle-headers-path 参数指定 头文件目录

    这样就应该不需要设置环境变量了, 不行在按下方设置咯~~

    -----------------------------------------

    然后要配置 环境变量的!!!

    根据这里(http://ljhzzyx.blog.163.com/blog/static/3838031220107139322436/)配置了,没重新登录 没起作用, 于是直接执行了下:

    export ORACLE_HOME=/usr/local/instantclient_12_1
    
    export PATH=$ORACLE_HOME:$PATH
    
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
    
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    
    export NLS_LANG="Simplified Chinese_china".ZHS16GBK
    
    ./configure
    
    make
    
    make install

    至此, 已经安装好了 ^_^, 没有出错哦,

    lib文件在 /usr/local/lib

    头文件在 /usr/local/include

    好了,可以使用 OciLib 4.2.1 了 ;

    也可以查看他的 readme 文件, 可以搭配一些参数make install

    Website : http://www.ocilib.net

    GitHub : https://github.com/vrogier/ocilib

    PS:不过这个库貌似默认是编译的 32位的, 如如何编译64位的, 看上面更新说明的CFLAGS参数。, 谢谢!

  • 相关阅读:
    百马百担
    穷举
    折叠次数
    判断年份是否是闰年
    定义xy比大小
    1月21日
    1月20日作业-第三题
    1月20日作业-第二题
    1月18日
    1月18日
  • 原文地址:https://www.cnblogs.com/lzpong/p/5764467.html
Copyright © 2011-2022 走看看