1. 所需安裝包 (64 位 )
oracle-instantclient-basic-10.2.0.3-1.x86_64.rpm
oracle-instantclient-devel-10.2.0.3-1.x86_64.rpm
2. 安裝
安裝後,庫文件路徑爲 /usr/lib/oracle/10.2.0.3/client64/lib/
頭文件路徑爲 /usr/include/oracle/10.2.0.3/client64/
3. 測試程序
connclient.cpp
4. 編譯
g++ -o connclient connclient.cpp -L /usr/lib/oracle/10.2.0.3/client64/lib
編譯出現的問題
1) error: occi.h: No such file or directory
解決:編譯時沒有引入 OCCI 頭文件
g++ -o connclient connclient.cpp -L /usr/lib/oracle/10.2.0.3/client64/lib -I/ usr/include/oracle/10.2.0.3/client64
2) 找不到對應函數
undefined reference to `oracle::occi::Environment::createEnvironment(oracle::occi::Environment::Mode, void*, void* (*)(void*, unsigned int), void* (*)(void*, void*, unsigned int), void (*)(void*, void*))'
解決:編譯時引入庫
g++ -o connclient connclient.cpp -L /usr/lib/oracle/10.2.0.3/client64/lib -I/ usr/include/oracle/10.2.0.3/client64 -locci –lclntsh
3) 找不到庫,如 libstdc++.so.5
解決: OCCI 庫在 linux 編譯的時候,由於 linux 版本太高,可能沒有 libstdc++.so.5 庫,下載這個版本的庫,即可,下載完可能會提示和 libstdc++.so.6 衝突,編譯時加上即可
g++ -o connclient connclient.cpp -L /usr/lib/oracle/10.2.0.3/client64/lib -I/ usr/include/oracle/10.2.0.3/client64 -locci –lclntsh /usr/lib/libstdc++.so.5
5. 執行
./connclient
輸出結果:
1 name1
2 name2