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)。
说起这个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个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2013-11-26 20:25:19
-
2013-11-22 22:18:49
-
2014-04-01 14:52:30
-
12015-12-24 13:13:27
-
2019-11-21 11:45:02
-
2017-03-09 16:42:56
-
02020-07-03 17:37:48
-
2017-03-10 09:34:16
-
2019-01-30 11:01:57
-
2016-03-19 15:36:24
-
2016-03-27 17:02:45
-
2020-06-01 18:31:20
-
2016-04-18 11:42:29
-
2018-06-11 09:12:30
-
2015-07-17 17:10:12
-
2021-03-05 11:57:23
-
2018-12-21 11:29:06
-
2019-12-02 11:19:04
-
2015-09-23 12:57:30
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5SS928的emmc有32GB,bootargs设置使用16GB,但是为啥能用的只有rootfs的大小
-
33SS928怎样烧写ubuntu系统
-
10ToolPlatform下载rootfs提示网络失败
-
10谁有GK7205V500的SDK
-
5Hi3516CV610 烧录不进去
-
10Hi3559AV100 芯片硬解码h265编码格式的视频时出现视频播放错误,解码错误信息 s32PackErr:码流有错
-
5海思SS928 / SD3403的sample_venc.c摄像头编码Demo中,采集到的摄像头的YUV数据在哪个相关的函数中?
-
5海鸥派openEuler无法启动网卡,连接WIFI存在问题
-
66有没有ISP相关的巨佬帮忙看看SS928对接IMX347的图像问题
-
50求助hi3559与FPGA通过SLVS-EC接口对接问题
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认