Tinyxml的嵌入式Linux實現

來源:互聯網
上載者:User
Tinyxml的嵌入式Linux實現

    這兩天項目需要在嵌入式Linux系統上實現Tinyxml解析簡單的xml檔案,於是在網上尋找並收集了一點資料,現在補充完善!

一、源碼下載:

https://github.com/xant/XML-TinyXML

http://sourceforge.net/projects/tinyxml/

版本:tinyxml_2_6_2.zip

二、動態連結程式庫的實現

首先修改 Makefile檔案:

(1)將"CXX:=g++"改為"CXX:=arm-linux-g++""CC:=arm-linux-gcc"

"LD:=arm-linux-g++","RANLIB:=arm-linux-ranlib"即將編譯器由g++改為交叉編譯器;

(2) 將"OUTPUT:=xmltest"改為"OUTPUT:=libtinyxml.so",即將原來產生示範程式改為產生動態連結程式庫libtinyxml.so;

(3)將xmltest.cpp從"SRCS:=tinyxml.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp"中刪除,注釋掉"xmltest.o:tinyxml.h tinystr.h"。因為不需要將示範程式添加到動態庫中;

(4)在"${LD}-o$@${LDFLAGS)${OBJS}${LIBS}${EXTRA_LIBS}"語句的"${LD)"後添加

"-shared",用於產生動態庫。

修改完成後,執行make命令就可以在目前的目錄產生需要的動態連結程式庫檔案libtinyxml.so,也可以根據需要把TinyXml編譯成靜態庫檔案。把產生的libtinyxml.so檔案拷貝到嵌入式系統下的/usr/lib即可,經過交叉編譯來源程式即可實現在嵌入式系統下解析xml檔案

三、靜態連結庫的實現

修改Makefile檔案

(1)、同上動態連結程式庫;

(2)、將"OUTPUT:=xmltest"改為"OUTPUT:=libtinyxml.a",即將原來產生示範程式改為產生靜態連結庫libtinyxml.a;

(3)、同上

(4)、將"${LD}-o$@${LDFLAGS)${OBJS}${LIBS}${EXTRA_LIBS}"改為"${AR}$@    ${LDFLAGS)  ${OBJS} ${LIBS}    ${EXTRA_LIBS}"

修改完成後,執行make命令就可以在目前的目錄產生需要的靜態連結庫檔案libtinyxml.a,也可以根據需要把TinyXml編譯成靜態庫檔案。靜態連結庫只在編譯時間加入至編譯命令即可,amr-linux-g++ test –static –o test.cpp ./libtinyxml.a

,即可產生test檔案,有用是靜態編譯,產生可執行檔較大,拷貝到嵌入式系統中即可。  

後記:在移植Tinyxml過程中,發現對shell指令不熟悉,沒有區分好空格和tab鍵導致出錯,後來在交叉編譯靜態連結庫時,沒有加入-static選項,產生可執行檔後無法運行出錯,出錯,都是需要不斷積累的。

 

四、參考文獻

引文:《基於TinyXml的嵌入式Linux》

連結:http://www.eepw.com.cn/article/67219.htm

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.