linux下c++使用occi連接oracle數據庫步驟,及出現的問題和解決

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章