SOAP嵌入式linux下的应用(一)

  

  作者:华清远见讲师

  Simple 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的移植

  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架构,安装路径为/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,windows,object,Symbian,华清远见)