Ubuntu 14.04 下安装gSOAP安装过程和问题解决

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