Linux下安装ROHC协议库并测试

引言

关于ROHC协议的介绍我就不说了,详见我的另一篇博客《ROHC协议简介》,地址如下:

http://blog.csdn.net/u013793399/article/details/51425161

本来我是想在同一片文章里先写协议简介,然后写怎么安装怎么配置怎么测试等等。结果写完简介发现好长。。。只好再开一篇。
这次,我们从零开始,在Ubuntu系统中,安装RoHC协议库,并且编译、运行官方自带的测试文件。

步骤

  • 首先要下载协议包。下载地址:
https://rohc-lib.org/support/download/#supported-releases

这个协议是开源的,也可以用作商业用途,唯一限制就是如果用了这个开源协议,那么做出来的东西也必须开源。

  • 下载libpcap和cmocka支持包,ROHC协议库需要先安装这两个包才能安装。下载地址:
http://pan.baidu.com/s/1c1ZjGGg

也可以直接去官方下载地址下载,这样还能下载到最新的版本。

  • 把上面三个包拖到Ubuntu虚拟机里,解压缩,就像这样:
    这里写图片描述

接下来要开始安装了。
在安装的过程中,有可能会出现xxx not found的错误。这是因为有些支持包在你的系统里没有,但是不要担心,无需专门去下载,需要专门下载的两个包你都已经下载好了→_→
只需要用
sudo apt-get install xxx
//xxx是包名
即可安装缺失的包

  • 先安装libpcap和cmocka。打开libpcap解压后的目录,找到INSTALL安装文档。
    这里写图片描述

  • 双击打开,看第一段。
    这里写图片描述
    所以安装步骤很明确了,打开终端,cd 到解压目录,按顺序分别输入以下命令:

./configure
make
su
//这里要输入你的密码
make install

这里写图片描述
这里写图片描述
这里写图片描述
然后就装好了。

  • 同样的,我们打开cmocka目录,找到README文件。
    这里写图片描述
    所以安装步骤就是,
    先在解压目录下新建一个build文件夹
    然后在命令行cd到该文件夹,输入:
sudo apt-get install cmake
cmake /这里写你的安装路径
make

这里写图片描述
这里写图片描述
我这里是因为已经装过一次,build文件夹不为空,所以会报错,如果build是空的就会成功。
这里写图片描述

  • 然后我们来装ROHC
  • 打开rohc的解压目录,找到README
    这里写图片描述
    妹的。。。好吧我们去找INSTALL
    这里写图片描述
    这里写图片描述
    所以很明显了,这个库本身不需要另外的支持包,但是如果想加点什么鬼,例如测试什么的,就需要别的包支持,然后列出了一大堆包,其中就有我们已经装好的libpcap和cmocka。
    没办法,装呗,反正都是同一句命令。
    装好支持包后,在rohc根目录输入
./configure --prefix=/这里输入你要安装的路径
make all
make install
然后把上图的一堆enable全部装上
举个栗子
./configure --enable-app-fuzzer
注意,前面的都可以一条条分开装,但是最后两条必须这样写:
./configure --enable-rohc-tests --enable-rohc-tests-valgrind
这是因为valgrind安装的条件的其中一个是tests需要被同时安装,如果分开装会报错,告诉你tests不支持。
  • 最后是测试,这个地方是坑的一笔,搞了我一整天。
  • 在ROHC官网上找到测试的教程,网址如下:
https://rohc-lib.org/wiki/doku.php?id=library-tests

例如我们测试无反馈信道的情况:

cd tests/non_regression
按照教程,输入
./test_non_regression_*.sh

这里写图片描述
诶??为什么不行???
那是因为还没有生成这个工程的输出文件,就这个鬼搞了我好久好久,真是槽点满满。
我们在这个目录下能找到一个.c文件,但是千万不要用gcc编译它,会被编译器玩死的,编译器会告诉你找不到某个文件,但是你发现那个文件就在上一级目录,或者在别的目录,你很开心,复制到工程目录,再编译,然后编译器找不到另一个文件,形成恶性循环。而那些“找不到”的文件,都在makefile里面明确指出了路径,makefile就是文件之间的走线啊。。。
真正的解决方法是:
在non_regression目录下

make test_non_regression

没错。。。不需要.c后缀,我也不知道为什么。。。
然后就可以

./test_non_regression_*.sh

这里写图片描述
终于成功了。。。T_T
简直感动哭了。

发布了40 篇原创文章 · 获赞 80 · 访问量 42万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章