Gsoap编译

摘要:
gSOAP工具主要包括两个可执行文件:wsdl2h和soapcpp2。gSOAP下载地址:https://sourceforge.net/projects/gsoap2/files/作者下载的版本是2.8.44。解压缩后,可以在gsoap/bin文件夹中找到Macosx和win32平台的编译可执行文件。test@test-virtual-machine:~/Downloads/gsoap-2.8$pwd/home/test/Downloads/csoap-2.812因为我不想将gsoap安装到系统中,我只想编译生成的可执行文件,所以我将安装目录设置为非系统目录。

gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。gSOAP支持大多数平台,包括嵌入式系统和小系统。 
你首先要定义好c/s通讯的函数接口,通过这些函数接口gSOAP就可以生成server端和client端的框架。生成的客户端(服务端)内部API可以将接收到的xml反序列化成C/C++的数据结构,也可以将本地的C/C++的数据结构序列化成xml格式发送出去。而你只需要分别在server端和client端实现你定义的那些接口就行了。 
gSOAP工具主要包括两个可执行文件:wsdl2h和soapcpp2。wsdl2h可以读取.wsdl格式文件并输出.h文件,而soapcpp2则可以读取.h格式文件(wsdl2h生成的或者包含用户自己定义的接口)生成server端和client端的框架。 
gSOAP下载地址:https://sourceforge.net/projects/gsoap2/files/ 
笔者下载的版本为2.8.44,解压以后可以在gsoap/bin文件夹发现有 macosx 和 win32 两个平台的已经编译好的可以执行文件。没有linux平台的。gSOAP生成server端和client端的框架是可以平台使用的,所以如果你完全可以在windows平台上生成你需要的C/C++代码并将其拷贝到其他操作系统操作平台使用。 
下面来生成linux平台的wsdl2h和soapcpp2可执行文件。 
我的编译环境为ubuntu 16.04 64位。g++ 4.8.5 gcc 4.8.5 
1. cd 到你解压出来的文件夹根目录。

test@test-virtual-machine:~/Downloads/gsoap-2.8$ pwd
/home/test/Downloads/gsoap-2.8
  • 1
  • 2
  1. 因为我不想安装gsoap到系统内,只想要编译生成的可执行文件,所以我在将安装目录设置为一个非系统目录(例如我自己创建的文件夹gsoap/my_bin)。
~/Downloads/gsoap-2.8$ ./configure --prefix=gsoap/my_bin
  • 1

–prefix 参数可以指定你的安装目录。 
3.执行 make 
错误1.

s/c$/h/` y.output soapcpp2_yacc.output -- yacc -d -v 
../../ylwrap: line 176: yacc: command not found
Makefile:521: recipe for target 'soapcpp2_yacc.c' failed
  • 1
  • 2
  • 3

编译出错 : yacc: 未找到命令 , 需要安装yacc

$sudo apt-get install bison
  • 1

错误2. 
/bin/bash ../../ylwrap soapcpp2_lex.l .c soapcpp2_lex.c -- /bin/bash /home/test/Downloads/gsoap-2.8/missing flex 
updating lex.yysoapcpp2_lex.c 

编译出错 : flex: 未找到命令 , 需要安装flex

sudo apt-get install flex
  • 1

还可能安装openssl

sudo apt-get install openssl
  • 1

还有openssl的库文件

sudo apt-get install libssl-dev
  • 1

最后执行

sudo make install
  • 1

安装成功。 
这里写图片描述

安装到可执行文件到我指定的文件夹 
这里写图片描述

转自:https://blog.csdn.net/u010293286/article/details/70182962

参考文章链接:http://www.cnblogs.com/coveted/p/3492342.html

linux-i386(ubuntu)下编译安装gsoap_2.8.17过程记录


过程记录 : 


1.下载gsoap_2.8.17.zip 并 解压 : $unzip gsoap_2.8.17.zip
 
Gsoap编译第3张
 
2.进入解压后的目录gsoap-2.8

Gsoap编译第4张
 
3.自动配置编译环境:  $./configure –prefix=$(pwd)/_install 
 
Gsoap编译第5张
配置失败
  • 原因:error: C++ compiler cannot create executables
  • 解决办法:You need to install c++ on your computer. even if you installed gcc that doesn’t automatically install g++. Try to run one of the following commands that fit your Linux distribution best :)
  • yum install gcc-c++ or apt-get install gcc-c++ . if apt-get doesn’t like the command try :apt-get install g++
安装c++编译器 : $sudo apt-get install g++

Gsoap编译第6张

重新执行配置命令,成功!

4.编译安装 : $sudo make

 
Gsoap编译第7张
编译出错 : yacc: 未找到命令 , 需要安装yacc
yacc和lex在ubuntu使用flex和bison代替,此处安装bison就是安装yacc
执行命令 : $sudo apt-get install bison

Gsoap编译第8张

安装完成后继续编译,结果出错:

Gsoap编译第9张

很明显,需要安装flex : sudo apt-get install flex

Gsoap编译第10张

继续编译,继续出错 :

Gsoap编译第11张

原因:缺少openssl,安装openssl : suod apt-get install openssl

Gsoap编译第12张

网上还说要安装openssl的库文件 : sudo apt-get install libssl-dev

Gsoap编译第13张

出错 
Gsoap编译第14张
sudo apt-get install libgtk2.0-dev libglib2.0-dev
编译成功!

5.安装  sudo make install

Gsoap编译第15张

 
总结 : 
          1.安装编译工具 : $sudo apt-get install g++ 或者 $sudo apt-get install build-essential
          2.可能需要安装GTK+和Glib库 : $sudo apt-get install libgtk2.0-dev libglib2.0-dev
          3.安装flex和bison代替lex和yacc :  $sudo apt-get install flex bison
          4.安装openssl      :   $sudo apt-get install openssl
                                        $sudo apt-get install libssl-dev
          5.不能有中文路径
 
 

免责声明:文章转载自《Gsoap编译》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇YARN应用程序的开发步骤【Cesium】天空盒子下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

13 制作模块压缩包、安装模块

为什么要制作模块压缩包? python的强大之处就在于模块,分享自己的模块到网络可以壮大python体系。 制作模块压缩包 1.在项目下为要压缩的模块以制作一个包 2.创建setup.py文件 制作模块压缩包,通常是将整个项目做成压缩包。 在项目下新建setup.py,在文件中添加如下代码: from distutils.core import setu...

JS最新技术ES6,结合Vue全局注册,实现Axios封装配置插件!

接下来,带来js全新技术ES6,结合Vue install全局组件实现Axios封装,以代码形式讲解。 1、请求封装 //file:src/api/http/http.js import axios from 'axios' axios.create(); axios.interceptors.request.use((config)=>{ //...

VSCode编译CMake工程报错c++: internal compiler error: Killed (program cc1plus)

现象 使用VSCode+CMake构建C++工程时只能编译Release版本,无法编译Debug版本。 报错提示c++: internal compiler error: Killed (program cc1plus) 解决 编译过程中内存不足 方案1:增加内存 如果在虚拟机运行Linux可以增加虚拟机的分配内存或增大swap空间 具体方法可以参考这篇文...

Cmake实战指南

0 综述 我觉的Cmake比较核心的一些东西就是 怎么去组织一个项目的编译框架 最终输出目标有哪些(可执行程序,动态库,静态库等等) 怎么为指定的输出目标指定编译参数(需要哪些源文件,需要哪些编译参数) 怎么为指定的输出目标指定链接参数(需要哪些外部库,需要哪些链接参数) 如果存在多个独立输出目标是否有执行先后顺序(比如项目有自动配置工具,用来自动生...

Postgresql 创建账户,修改密码

sudo su postgres psql password postgres输入密码q 本机调试的时候,最好在装完以后添加一个pgsql的管理员帐号,否则phppgadmin不让登陆 创建用户 sudo su - postgres psql create user "myUser" with password '12345'; crea...

Docker实践

1.1 实验环境 本教程实验环境:ubuntu16.04 64位 。 1.2 docker 安装 可以参考菜鸟教程安转完成后启动docker 1 sudo service docker start 运行docker默认的hello-world程序 1 sudo docker run hello-world 运行界面如下,说明docker安转成功...