linux安裝xml開發包xerces-c

來源:互聯網
上載者:User
  1. xerces介紹
    Xerces-C++ 的前身是 IBM 的 XML4C 項目。XML4C 和 XML4J 是兩個並列的項目,而 XML4J 是 Xerces-J——Java 實現——的前身。IBM 將這兩個項目的原始碼讓與 Apache 軟體基金會(Apache Software Foundation),他們將其分別改名為 Xerces-C++ 和 Xerces-J。這兩個項目是 Apache XML 組的核心項目(如果看到的是“Xerces-C”而不是“Xerces-C++”,也是同一個東西,因為這個項目一開始就是用 C(譯者註:原文為C++)語言編寫的)。
    IBM 仍然在 Xerces-C++ 的基礎上繼續 XML4C 項目。從我所研究的版本來看,XML4C 與 Xerces-C++ 相比突出的好處是,它的預設安裝對大量國際字元編碼提供了更好的支援
    xerces-J的資料,可以參考網址http://xerces.apache.org/xerces-j/
    xerces-c的資料,可以參考網址http://xerces.apache.org/xerces-c/
    下面我們在linux上安裝xerces-c
  2. 下載,安裝
    從http://xerces.apache.org/xerces-c/上下載linuxe/unix下的來源程式包xerces-c-current.tar.gz,上傳到linux/unix主機,我用的是linux,順序執行如下操作:
    解壓,命令:tar -xzvf xerces-c-current.tar.gz
    添加環境變數,vi .bash_profile,在檔案最後添加如下一行
    export XERCESCROOT=$HOME/xerces-c-src_2_7_0
    儲存退出,行source .basu_profile使環境變數生效
    進入來源程式目錄
    cd $XERCESCROOT/src/xercesc
    執行automake,產生configure指令碼,運行如下命令
    autoconf
    運行configure指令碼,並加入選項
    ./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread
    編譯產生lib庫,如果上面的runConfigure運行沒有什麼問題,執行gmake
    gmake
    如果gmake沒有出現錯誤,說明一切ok
    編譯樣本程式
    cd $XERCESCROOT/samples
    ./runConfigure -plinux -cgcc -xg++
    gmake
    cd $XERCESCROOT/bin
    運行樣本程式DOMCount,提示如下錯誤資訊
    ./DOMCount: error while loading shared libraries: libxerces-c.so.27: cannot open shared object file: No such file or directory
    根據提示得資訊判斷,這是程式你在運行得時候找不到共用庫libxerces-c.so.27,顯然,這是程式在執行得過程中,搜尋路徑不正確,看看上面得配置,在編譯完xercescroot之後,沒有設定和庫路徑相關得環境變數,只要將xercescroot的庫路徑添加到一個環境變數,這樣程式在執行過程中,就能找到libxerces-c.so.27庫了;如果出現找不到共用庫的情況都可以通過修改環境變數來解決問題,該環境變數名為:LD_LIBRARY_PATH
    添加環境變數,vi .bash_profile,在最後添加一行,如下:
    export LD_LIBRARY_PATH=$XERCESCROOT/lib
    儲存退出,執行source .bash_profile,使環境變數生效
    以上的每一步都要正確無誤地執行之後,才能進行下一步
  3. xerces-c和tuxedo結合的問題
    由於tuxedo8.1以上的版本都內建了xerces-c,這樣我們在開發tuxedo服務,並且用xerces-c包做解析的時候,由於你開發用的xerces版本和tuxedo內嵌的版本可能會不一樣,一些符號的定義就會不一樣了,這樣在編譯的時候會報一些阿莫名奇妙的錯誤,這時應該避免使用tuxedo內建的xerces標頭檔,把$TUXEDIR/include下的xercesc目錄改名就可以了.

    如果你在開發的時候用的xerces-c版本和tuxedo內建的xerces-c版本相同,就不會有問題,如果版本不同就得注意.
    我建議,最好你開發得時候用什麼版本,在tuxedo結合編譯啟動並執行時候,也用這個版本.

    知道xerces的版本號碼
    從xerces的xerces/util/XercesVersion.hpp檔案中,根據XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION可以得到主次,臨時版本號碼。
    早期的在Xerces_DLLVersionStr檔案中定義

  4. xerces-c++編程
    後面我會進行補充.
    如有問題,請留言,我們一起解決,總結經驗.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.