linux下gsoap环境搭建及C++ demo

第一次在Linux下裸写代码,没有大神可以抱大腿,makefile写到吐血。
做一个从webservice服务端获取数据的小东西。以下记录环境搭建和基础demo,资料整理汇总,备忘。

基础概念

WebService:一种跨编程语言和跨操作系统平台的远程调用技术。能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。
soap:简单对象访问协议。SOAP协议 = HTTP协议 + XML数据格式。
gsoap:是一种能够把C/C++语言的接口转换成基于soap协议的webservice服务的工具。
WSDL:自动生成的用来说明webService服务端可提供的服务信息的文件。


gsoap安装

配合现场,安装的全新centos,保证啥也没得。(centos6.8居然还需要手动挂载硬盘,长见识了还)

1、下载解压

压缩包直接丢在/home下了

yum install unzip zip
unzip gsoap_2.8.69.zip

所以,gsoap的大本营就在/home/gsoap(解压完的目录)下了,对应修改makefile文件的时候注意这点。

2、配置编译环境

运行gsoap目录下configure

cd /home/gsoap-2.8
./configure
3、编译安装

简单来说就是

make
make install

make时会出现报错,因为缺少依赖包,根据报错信息对应添加依赖即可。
- error: openssl/bio.h: No such file or directory

yum install openssl-devel
  • ylwrap: line 176: yacc: command not found
yum install byacc
  • missing: line 81: flex: command not found
yum install flex
  • /usr/bin/ld: cannot find -ly
yum install bison-devel

这类报错以此类推找依赖即可,编译成功的字很大,肯定能知道是成功了。

基础demo

接下来会写一个server做加法和减法。client调用(耍流氓,其实写死了)。

这个例子的makefile写的很酷,喜欢结构清晰。虽然更复杂的样子,虽然今天还不会,还是喜欢这个demo,明天就会啦。

2018年8月29日过来填"明天就会啦"的坑:当前gsoap示例的makefile文件说明

目录结构如下:
calc
├─ bin
│ ├─ makefile
│ ├─ objects.mk
│ ├─ soap
│ │ └─ subdir.mk
│ ├─ sources.mk
│ └─ subdir.mk
├─ calc.h
├─ client.cpp
├─ server.cpp
├─ soap
│ ├─ calc.nsmap
│ ├─ calc.wsdl
│ ├─ ns.xsd
│ ├─ soapC.cpp
│ ├─ soapH.h
│ ├─ soapStub.h
│ ├─ soapcalcProxy.cpp
│ ├─ soapcalcProxy.h
│ ├─ soapcalcService.cpp
│ └─ soapcalcService.h

  • calc/bin:makefile及目标文件目录
  • calc/soap:gsoap根据server端给出的wsdl文件或头文件定义生成的中间文件。
  • calc/calc.h:头文件定义
  • calc/client.cpp:客户端实现
  • calc/server.cpp:服务端实现(此处是为了测试)
1、生成客户端和服务端所需的文件

文件放在calc/soap下
如果是根据wsdl文件生成,则需要先使用wsdl2h生成头文件。

wsdl2h -o calc.h calc.wsdl

wsdl2h常用指令如下:

-s 生成的头文件不使用 STL
-o 文件名,指定输出头文件的名称
-c 产生纯 C 代码,否则是 C++ 代码
-t 文件名,指定 type map 文件,默认是 typemap.dat

此处是直接自定义头文件来生成,需要先创建头文件:


                
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值