小凡慢慢学
慢慢学,更有趣

soap下载地址为:http://www.cs.fsu.edu/~engelen/soap.html

将下载的安装包解压,并拷贝到linux的操作目录,本人操作目录为: 
$: /home/orange

安装编译工具:

  $sudo apt-get install build-essential

  为了成功编译gSOAP,您需要安装GTK+的开发文件和GLib库(libraries)。

  $sudo apt-get install libgtk2.0-dev libglib2.0-dev


以上面的目录为例:
首先进入目录cd /home/orange/gsoap-2.8/
然后,配置编译环境:
命令:$:sudo ./configure
然后,编译连接
命令:$:sudo make
最后,安装gSOAP
命令:$:sudo make install

 

遇到的问题及解决方案如下:

遇到的问题1:
make[4]: 正在进入目录 `/home/titus/OpenComponent/gsoap-2.8/gsoap/src'
/bin/bash http://www.cnblogs.com/ylwrap soapcpp2_yacc.y y.tab.c soapcpp2_yacc.c y.tab.h soapcpp2_yacc.h y.output soapcpp2_yacc.output -- yacc  -d -v
http://www.cnblogs.com/ylwrap: line 111: yacc:找不到命令
make[4]: *** [soapcpp2_yacc.c] 错误 1

原因:
没有安装:yacc(Yet Another Compiler Compiler),是Unix/Linux上一个用来生成编译器的编译器(编译器代码生成器)。

解决方案:
sudo apt-get install flex bison


遇到的问题2:
http://www.cnblogs.com/gsoap/stdsoap2.h:695: fatal error: openssl/bio.h: 没有那个文件或目录
compilation terminated.
make[5]: *** [wsdl2h] 错误 1

原因:是缺少openssl的相应的头文件

解决方案:
sudo apt-get install openssl
为了安装OpenSSL通常的库文件,首先使用以下命令来确定在Ubuntu系统中可获得的库文件的应用版本:
sudo apt-cache search libssl | grep SSL 
sudo apt-get install libssl-dev

 

遇到的问题3:

‘soap_rand’未定义引用

解决方案:

修改gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.h

//#if defined(WITH_OPENSSL)
# define soap_random soap_rand()
SOAP_FMAC1 int SOAP_FMAC2 soap_rand(void);
/*
#elif defined(HAVE_RANDOM)
# define soap_random (int)random()
#else
# define soap_random rand()
#endif
*/

修改gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp

//#ifdef WITH_OPENSSL
//#ifndef PALM_2
SOAP_FMAC1
int
SOAP_FMAC2
soap_rand()
{ unsigned char buf[4];
if (!soap_ssl_init_done)
soap_ssl_init();
RAND_pseudo_bytes(buf, 4);
return *(int*)buf;
}
//#endif
//#endif

 

posted on 2014-09-18 11:00  小凡慢慢学  阅读(1231)  评论(0编辑  收藏  举报