當前位置:首頁 > 學(xué)習(xí)資源 > 講師博文 > SOAP嵌入式linux下的應(yīng)用(一)
SOAP嵌入式linux下的應(yīng)用(一)
時間:2018-10-28 來源:華清遠見
Simple Object Access Protocol(SOAP)簡單對象訪問協(xié)議,是交換數(shù)據(jù)的一種協(xié)議規(guī)范,是一種輕量的、簡單的、基于XML(標準通用標記語言下的一個子集)的協(xié)議,它被設(shè)計成在WEB上交換結(jié)構(gòu)化的和固化的信息。
這里介紹soap嵌入式linux下的使用。
一、gSOAP
選擇gSOAP的原因:
gSOAP編譯工具提供了一個SOAP/XML 關(guān)于C/C++ 語言的實現(xiàn),從而讓C/C++語言開發(fā)web服務(wù)或客戶端程序的工作變得輕松了很多。絕大多數(shù)的C++web服務(wù)工具包提供一組API函數(shù)類庫來處理特定的SOAP數(shù)據(jù)結(jié)構(gòu),這樣就使得用戶必須改變程序結(jié)構(gòu)來適應(yīng)相關(guān)的類庫。與之相反,gSOAP利用編譯器技術(shù)提供了一組透明化的SOAP API,并將與開發(fā)無關(guān)的SOAP實現(xiàn)細節(jié)相關(guān)的內(nèi)容對用戶隱藏起來。
可移植性:gSOAP支持大多 數(shù)平臺,包括嵌入式系統(tǒng)和小系統(tǒng)(例如嵌入式Symbian,Palm)。可移植性測試Windows(98,XP,Vista),Linux,Unix 系統(tǒng),Mac OS X,Solaris,HP-UX,AIX,F(xiàn)reeBSD,TRU64,Irix,QNX,VxWorks。
二、gSOAP的移植
1、下載源碼
http://sourceforge.net/projects/gsoap2/files/
http://jaist.dl.sourceforge.net/project/gsoap2/gSOAP/gsoap_2.8.24r.zip
本例下載版本為:gsoap_2.8.24r.zip
2、解壓源碼
$ unzip gsoap_2.8.24r.zip
3、編譯x86 平臺下工具
配置源碼
$ ./configure --prefix=/home/linux/gsoap/gsopa-x86
配置一些特性,比如目標平臺安裝路徑等,如上配置目標平臺為x86架構(gòu),安裝路徑為/home/linux/gsoap/gsoap-x86
編譯源碼
$ make
安裝源碼到/home/linux/gsoap/gsoap-x86目錄
$ make install
4、編譯arm平臺工具
./configure --prefix=/home/linux/gsoap/gsopa-arm --host=arm-linux
再次配置源碼,這次配置目標平臺變?yōu)閍rm-linux
修改源碼,根據(jù)編譯錯誤提示進行適當修改:
修改源碼目錄下的config.h
注釋掉:
#define malloc rpl_malloc
soapcpp和wsdl2h在編譯過程中會生成同事這兩個工具也在編譯時會被用來生成一些特定的文件,所以如果soapcpp和wsdl2h如果被編譯成arm架構(gòu)則無法在PC上執(zhí)行,也就意味著接下的編譯無法完成,所以這里選擇不編譯這兩個文件,而選擇使用上節(jié)編譯所生產(chǎn)的x86架構(gòu)的對應(yīng)文件。
修改gsoap/src/Makefile
注釋掉
soapcpp2$(EXEEXT): $(soapcpp2_OBJECTS) $(soapcpp2_DEPENDENCIES) $(EXTRA_soapcpp2_DEPENDENCIES)
@rm -f soapcpp2$(EXEEXT)
$(AM_V_CCLD)$(soapcpp2_LINK) $(soapcpp2_OBJECTS) $(soapcpp2_LDADD) $(LIBS)
修改gsoap/wsdl/Makefile
wsdl2h$(EXEEXT): $(wsdl2h_OBJECTS) $(wsdl2h_DEPENDENCIES) $(EXTRA_wsdl2h_DEPENDENCIES)
@rm -f wsdl2h$(EXEEXT)
$(AM_V_CXXLD)$(wsdl2h_LINK) $(wsdl2h_OBJECTS) $(wsdl2h_LDADD) $(LIBS)
拷貝x86架構(gòu)下的soapcpp和wsdl2h到工程源碼目錄下:
$ cp /home/linux/gsoap/gsoap-x86/bin/soapcpp2 /home/linux/gsoap/gsoap-2.8/gsoap/src/
$ cp /home/linux/gsoap/gsoap-x86/bin/wsdl2h /home/linux/gsoap/gsoap-2.8/gsoap/wsdl/
編譯
$ make
安裝
make install
如何利用機器學(xué)習(xí)構(gòu)建個性化推薦系統(tǒng)
嵌入式系統(tǒng)從上電到操作系統(tǒng)運行的完整啟動流程
如何在不同工作場景下優(yōu)化嵌入式系統(tǒng)的電源消耗
硬件抽象層(HAL)的設(shè)計如何提高代碼的可移植性
批量歸一化在深度學(xué)習(xí)訓(xùn)練中的作用和實現(xiàn)方法
物聯(lián)網(wǎng)項目中設(shè)計嵌入式系統(tǒng)時的關(guān)鍵技術(shù)和考慮因素
通過自然語言處理技術(shù)理解文本的深層含義
如何基于RISC-V架構(gòu)設(shè)計高效能的嵌入式系統(tǒng)
LSTM和GRU在時間序列預(yù)測中的應(yīng)用
JTAG和SWD的調(diào)試技術(shù)及應(yīng)用
