ngswfx

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx  发布于  2016-03-30 14:01:11
采纳率 0%
55个问答
5162

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

 
本帖最后由 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)。
易百纳技术社区文件: OnvifSoap.tar.gz
下载
易百纳技术社区文件: OnvifSoapEx.tar.gz
下载
我来回答
回答9个
时间排序
认可量排序

gyj82117

0个粉丝

0

问答

0

专栏

0

资料

gyj82117 2016-07-06 07:26:57
认可0
谢谢 分享,学习

hundajdx

0个粉丝

0

问答

0

专栏

0

资料

hundajdx 2016-12-01 19:45:27
认可0
谢谢了,学习!!!

bell_kin

0个粉丝

0

问答

0

专栏

0

资料

bell_kin 2016-12-27 01:03:50
认可0
只要把動作寫在別的檔案,以後不用等個30秒編譯soap了

yang1372073

0个粉丝

19

问答

0

专栏

2

资料

yang1372073 2017-11-10 10:00:39
认可0
把soapC.c拆了。。。。。

lmf1793598583

1个粉丝

2

问答

0

专栏

1

资料

lmf1793598583 2017-11-13 11:21:22
认可0
onvif前段时间在hi3516、hi3519移植了

GT119119

0个粉丝

0

问答

0

专栏

0

资料

GT119119 2017-11-15 18:39:50
认可0
含金量高 必须赞

myearth

0个粉丝

3

问答

0

专栏

3

资料

myearth 2016-07-06 09:54:06
认可0
学习了:handshake

daygang

1个粉丝

12

问答

0

专栏

0

资料

daygang 2016-07-19 16:08:50
认可0
学习了:victory:

fengzheng822

0个粉丝

5

问答

0

专栏

0

资料

fengzheng822 2017-12-07 14:04:39
认可0
学习了。。。。。。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

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

详细说明

易百纳技术社区