Onvif 想说爱你不容易,编译真费劲,我的解决方案

 2 E币 
成为会员,免费下载资料
文件大小:10.86 MB 上传者:ngswfx 时间:2016-03-30 13:58:47 下载量:600
本帖最后由 ngswfx 于 2016-4-10 02:54 编辑

说起这个Onvif,早就想了解一下了,一两年前都有相关的代码,其实就是网上搜的别人的代码。自己没有花过多精力搞,因为我只需要产品发现和被发现。

为此直接使用别人的工程,拿过来直接编译,我靠,太大了,经过努力,终于把动态库.so搞到5M左右,写入jffs2格式的flash,实际占用空间,在1.8M左右,还能接受。所以考虑到以后增加其他功能,就更没意愿去自己去研究一个仅仅能支持发现和被发现的代码了。

但这几天需要平凡研究、进行代码合成组织工作,为此需要频繁调整Onvif相关的代码,问题来了,太慢了,太慢了,太慢了,重要的事情讲3遍。

受不了了。

都是那几个soap 1 2 3 4 5 6文件,超级大,好几M一个,编译超慢。

前几天还忍受着,今天早上起来,突然想到,干脆把最慢的部分独立搞成一静态库文件,反正这部分半年内估计也不会变,尝试一下,还不错。现在我的OnvifSDK.so动态库,编译的时候,调用的是OnvifSoap.a静态库,速度快多了,实际eclipse编译14秒就搞定了,开始可是40-50秒。呵呵,基本满意。这下再调整OnvifSDK.so模块里面函数
的时候,就没有那么难受了,通常一边修改,一边编译,看能否通过。而这个OnvifSoap.a,估计一旦生成,代码很难去调整了,再说了,这里面的代码都是Onvif网站工具生成的。我打包为库而已。


OnvifSDK.so项目中把所有.h文件都加上,超大的.c就不要了,而OnvifSoap.a里面除了这些.h,再加上那些超大的.c文件即可。

把这种思路给大家分享一下,对受够了soap.c 超级大文件编译的伙伴们提供一个实际可行的解决思路。

对于刚开始完成onvif模块功能的伙伴们,这种方法会让你舒服一点。呵呵。



想想网上的那些文章,都说那两个serverlib.c 以及Clientlib.c没用,呵呵,误人子弟呀,不是没用,是很有用。估计soap.c生成后,第一步就是要先弄成.a库文件被上层调用的,这样再写Server和Client具体代码实现时,编译就很快了。

其中下载中,带Ex是最新的,支持wsse的。

注:下载中仅仅是soap.c的封装,没有任何server和Client的实现代码,仅供参考,当然,可直接被调用。因为我项目中,用的就是这个。前提条件就是,你的Sever或者Client使用的函数也在基本范围内(发现,被发现,Media)。
展开
折叠
922
评论
共 0 个
内容存在敏感词
    易百纳技术社区暂无数据
相关资料
关于作者
易百纳技术社区
ngswfx
贡献资料 40
易百纳技术社区 我上传的资料
登录查看
我赚取的积分
登录查看
我赚取的收益
登录查看
上传资料 赚取积分兑换E币
易百纳技术社区
删除原因
广告/SPAM
恶意灌水
违规内容
文不对题
重复发帖
置顶时间设置
结束时间
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-资料模块

审核失败

失败原因
备注
易百纳技术社区