SOAP嵌入式linux下的應用使用方法 一

2021-07-10 08:17:36 字數 2009 閱讀 8420

****** object access protocol(soap)簡單物件訪問協議,是交換資料的一種協議規範,是一種輕量的、簡單的、基於xml(標準通用標記語言下的乙個子集)的協議,它被設計成在web上交換結構化的和固化的資訊。

這裡介紹soap嵌入式linux下的使用。

一、gsoap

選擇gsoap的原因:

gsoap編譯工具提供了乙個soap/xml 關於c/c++ 語言的實現,從而讓c/c++語言開發web服務或客戶端程式的工作變得輕鬆了很多。絕大多數的c++web服務工具包提供一組api函式類庫來處理特定的soap資料結構,這樣就使得使用者必須改變程式結構來適應相關的類庫。與之相反,gsoap利用編譯器技術提供了一組透明化的soap api,並將與開發無關的soap實現細節相關的內容對使用者隱藏起來。

可移植性:gsoap支援大多 數平台,包括嵌入式系統和小系統(例如嵌入式symbian,palm)。可移植性測試windows(98,xp,vista),linux,unix 系統,mac os x,solaris,hp-ux,aix,freebsd,tru64,irix,qnx,vxworks。

二、gsoap的移植

2、解壓原始碼

$ unzip gsoap_2.8.24r.zip

3、編譯x86 平台下工具

配置原始碼

$ ./configure --prefix=/home/linux/gsoap/gsopa-x86

配置一些特性,比如目標平台安裝路徑等,如上配置目標平台為x86架構,安裝路徑為/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

再次配置原始碼,這次配置目標平台變為arm-linux

修改原始碼,根據編譯錯誤提示進行適當修改:

修改原始碼目錄下的config.h

注釋掉:

#define malloc rpl_malloc

soapcpp和wsdl2h在編譯過程中會生成同事這兩個工具也在編譯時會被用來生成一些特定的檔案,所以如果soapcpp和wsdl2h如果被編譯成arm架構則無法在pc上執行,也就意味著接下的編譯無法完成,所以這裡選擇不編譯這兩個檔案,而選擇使用上節編譯所生產的x86架構的對應檔案。

修改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架構下的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

源文:>>>更多優秀技術博文每日更新

linux 下嵌入式開發除錯

除錯使用者程式 主機 linux os eclipse cdt gdb gcc交叉編譯鏈 目標機 armlinux os gdbserver 通訊方式 tcp 檔案傳輸方式 ftp,minicom,通過nfs.配置參考 除錯linux kernel.bootloder u boot 除錯核心 gdb...

嵌入式Linux下wifi程式設計

最近搗騰了下linux下wifi的問題,寫下算是記錄問題總結。編譯後會生成3個程式 1 iwlist這個可以用來掃瞄訊號。例如 iwlist rausb0 scanning 2 iwconfig這個用來檢視wifi網絡卡資訊。類似與linux命令ifconfig。例如 iwconfig rausb0...

嵌入式linux系統的開發 SDK環境的應用

sdk軟體開發工具包 software development kit 是為軟體工程師在特定的平台上進行應用程式開發而提供的一系列軟體開發工具的集合。嵌入式linux發行版lede提供的sdk環境與發行版環境相相容,在sdk環境下進行程式開發,不像發行版那樣需要編譯整個linux系統,只需要指定特定...