主要分兩個平台來說
1 在安裝了ORACLE 伺服器上
配置環境
[ba@nod1-ba lib]$ cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/rac
export CRS_HOME=/oracle/crs
export ORACLE_SID=esunba1
export PATH=$ORACLE_BASE/OPatch:$ORACLE_HOME/bin:$CRS_HOME/bin:$PATH:/sbin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LC_ALL='zh_CN'
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
export NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SSXFF'
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
然後編譯內建的列子
OCCI介面編譯
g++ occidml.cpp -I$ORACLE_HOME/rdbms/public -L$ORACLE_HOME/lib -locci –lclntsh -o occidml.exe
第一個參數是原檔案, 第二參數是標頭檔所在地 第三個參數是庫檔案所在地 第四個和第五個參數是要串連的庫名,第六個參數是 輸出的可執行檔的名稱
2 第二個平台
安裝了用戶端 SDK
:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
注意資料庫版本號碼和SDK的包
把*.so 移動到OCCI_LIB目錄中
把 instantclient/sdk/include 裡的*.h 複製到 OCCI_H目錄中
編輯 ~/.bash_profile
OCCI_H=$OCCI_H:/home/es348/include/occi/sdk/include
OCCI_LIB=$OCCI_LIB:/home/es348/include/occi/lib
export OCCI_H
export OCCI_LIB
編譯
g++ occidml.cpp -I$OCCI_H -L/home/es348/include/occi/lib -locci -lclntsh -o occidml.exe
SDK包中帶來關於G++ 343的庫。另外還有說明
我的是:
g++ -v
使用內建 specs。
目標:i386-redhat-linux
配置為:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
執行緒模式:posix
gcc 版本 4.1.2 20070626 (Red Hat 4.1.2-14)