ONVIF 初学编译问题



环境: Ubuntu10.04   平台:openwrt  架构:mips

源代码:gsoap 2.8.33.zip

gsoap工具包中支持的平台是:macosxwin32  linux版本没有编译出来,更没有嵌入式mips平台的,接下来编译linux平台和mips嵌入式平台工具

交叉编译工具:OpenWrt-Toolchain-ar71xx-for-mips_r2-gcc-4.6-linaro_uClibc-0.9.33.2

 

一、编译linux平台下工具,这个比较好安装

1、把源码包放进Ubuntu 建好工作目录

 

2、解压源码包:unzip gsoap_2.8.33.zip

 

3、解压后进入源代码目录:cd gsoap-2.8/

 

4、生成Makfile文件:./configure--prefix=/usr/local/gsoap-x86  --disable-ssl

         注意:不加--disable-ssl ,会出一些错误,要安装很多配件,也可以不加 ,根据错误安装。按需求是否需要

 

5make

 

6make install

编译安装完全后会在/usr/local/gsoap-x86生成相关工具,gsoap-2.8/src/gsoap-2.8/wsdl/也会有相关工具

 

二、编译mips平台gsoap工具

 

1make distclean

./configure--prefix=/usr/local/gsoap-mips --host=mips-openwrt-linux-uclibc --disable-ssl

注意:mips-openwrt-linux-uclibc交叉编译工具要弄好,可在/etc/profile 文件中添加path

然后source /etc/profile

 

 

2、生成的config.h有点问题,需自己修改下,屏蔽#definemalloc rpl_malloc,不然编译会报malloc相关错误

 

 

3make 会报错../../gsoap/src/soapcpp2:../../gsoap/src/soapcpp2:无法执行二进制文件

为什么会报这个错呢??

是由于make过程中mips框架下的soapcpp2已经生成了,覆盖掉了之前x86框架下的soapcpp2,但是有由于后续的make过程中还需要x86框架下的soapcpp2做一些事,而文件变成mips框架下的了,所以就执行不了二进制文件。现在就用到了我们之前编译在/usr/local/gsoap-x86的工具,将其复制到相关目录即可

cp /usr/local/gsoap-x86/bin/wsdl2h    /home/farsight/openwrt/gsoap-2.8/gsoap/wsdl/

cp /usr/local/gsoap-x86/bin/soapcpp2  /home/farsight/openwrt/gsoap-2.8/gsoap/src/

 

 

4make install 成功;gsoap-2.8/src/gsoap-2.8/wsdl/ 下会有我们所需的工具 mips架构的

然而还是有点问题的 就是我们在/usr/local/gsoap-mips下的工具,确是x86的,可能是cp那部分影响的,但我们不需要关心了 ,我们用gsoap-2.8/src/gsoap-2.8/wsdl/下的工具就好了

 

 

 

注意:

补充:安全用户名和密码是采用openssl库和gsoap的自带的控件, 采用下列接口soap_wsse_verify_Password soap_wsse_verify_Timestampsoap_wsse_get_Username   openssl 编译

tar zxvf openssl-0.9.8.tar.gz cdopenssl-0.9.8

./config no-asm --prefix=/opt/opensslos/compiler: /ToolChain/bin/ arm-none-linux-gnueabi-g++ make

make install 


之后进入到/opt/openssl 拷贝头文件和库


以上经过各大神的文章学习,总结的

你可能感兴趣的:(ONVIF开发)