最近在做linux下的c與oralce的操作。為了直接操作oracle資料的核心,是訪問的更快,我選擇了oci——oracle提供的c語言介面,來作為開發的工具。
下面我先說一下在linux用c去操作oracle需要什麼樣的環境;
a;oralce的客戶端是必須的,
b;oracle的sdk也是必須的;
我在的rpm版本的,這樣的話,省去了很多的配置環境的過程。
安裝完以後,在編乙個簡單的測試**(這個我就不提供了);
最後就是最主要的編譯了:gcc
就是這個gcc用去了我2天的時間,其中的引數,令我很頭疼,不過,終於搞定:
gcc指令:gcc -o t -i/usr/include/oracle/10.2.0.4/client -l/usr/lib/oracle/10.2.0.4/client/lib -lclntsh ocitest.c
(同檔案的路徑) (動態庫的路徑)
如果,你是預設裝,完全可以用我提供的指令。如果你指定了路徑,那就必須把路徑修改;
這樣的話,你完全可以編譯成功。我很高興,終於編譯成功了,但是,令我頭疼的還在後面呢。
我執行程式,出現了錯誤:error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: no such file or directory
我初步分析是動態庫的問題,花了2個小時,查查了動態庫的有關資料。才知道linux下有乙個/ect/ld.so.conf的檔案,這個檔案是儲存動態庫路徑的。你必須把路徑加入到這個檔案中:echo "/usr/lib/oracle/10.2.0.4/client/lib ">>/etc/ld.so.conf
加入完之後,本以為可以執行了,但是還出現錯誤,在查查了資料,原來還得提交。
執行:/sbin/ldconfig
還需要在usr/lib/oracle/10.2.0.4/client 下建立network,然後在network下建立admin,在admin下建立tnsnames.ora,其中tnsnames.ora要修改許可權,在root使用者下把器改為所有使用者的都能執行。chmod 777 tnsnames.ora
內容如下: 192.168.1.201 = //名字任意,對應於ociserverattach(srvhp,p_err,(text *)"192.168.1.201..)第三個引數
(description =
(address = (protocol = tcp)(host = 192.168.1.201)(port = 1521))
(connect_data =
(server = dedicated)
(service_name = orcl)))
到此,程式完全可以執行,兩天的勞動沒有白費,希望寫出來,能給跟我遇到同樣問題的人一點點的提示。
Ubuntu 程式設計環境配置
2.為了方便與 windows 上的 ssh 客戶端軟體互動而安裝 openssh server 軟體 4.安裝 vim 文字編輯器 5.設定 vim 文字編輯器 複製如下內容以 vimrc 為檔名儲存到使用者主目錄 6.安裝 openal 驅動程式 7.寫程式的時候也需要聽聽 放鬆放鬆,編輯位於使...
OpenGL程式設計環境配置
這學期的計算機圖形學課,老師要我們交乙份用opengl做的圖形程式作為作業。因此,我開始學習opengl。作業系統 win8.1,環境 vs2013。按照書上說的 使用glut作為程式設計框架,glut簡化了windows下的基本gui程式設計,使學習更加專注於opengl.下面是配置過程 2.複製...
程式設計環境配置(updated)
以前學習程式設計的時候喜歡用ide,認為這種有介面 inte ce 的程式設計環境非常方便,到後來接觸linux unix,開始接觸命令列操作和遠端 協作,才發現有介面的ide是多的無力,適應了一段時間之後,我已經發現自己深深的愛上了這種沒有gui的工作學習環境。因為還在美帝學習,所以乘著資本主義的...