红联Linux门户
Linux帮助

Linux下安装ROHC协议库并测试

发布时间:2016-08-18 10:05:02来源:linux网站作者:Joyce_Ng
我们从零开始,在Ubuntu系统中,安装RoHC协议库,并且编译、运行官方自带的测试文件。
 
1.首先要下载协议包。下载地址:
https://rohc-lib.org/support/download/#supported-releases
这个协议是开源的,也可以用作商业用途,唯一限制就是如果用了这个开源协议,那么做出来的东西也必须开源。
 
2.下载libpcap和cmocka支持包,ROHC协议库需要先安装这两个包才能安装。下载地址:
http://pan.baidu.com/s/1c1ZjGGg
也可以直接去官方下载地址下载,这样还能下载到最新的版本。
 
3.把上面三个包拖到Ubuntu虚拟机里,解压缩,就像这样:
Linux下安装ROHC协议库并测试
接下来要开始安装了。
在安装的过程中,有可能会出现xxx not found的错误。这是因为有些支持包在你的系统里没有,但是不要担心,无需专门去下载,需要专门下载的两个包你都已经下载好了→_→
只需要用
sudo apt-get install xxx
//xxx是包名
即可安装缺失的包
 
4.先安装libpcap和cmocka。打开libpcap解压后的目录,找到INSTALL安装文档。
Linux下安装ROHC协议库并测试
 
5.双击打开,看第一段。
Linux下安装ROHC协议库并测试
所以安装步骤很明确了,打开终端,cd 到解压目录,按顺序分别输入以下命令:
./configure
make
su
//这里要输入你的密码
make install
Linux下安装ROHC协议库并测试
Linux下安装ROHC协议库并测试
Linux下安装ROHC协议库并测试
然后就装好了。
 
6.同样的,我们打开cmocka目录,找到README文件。
Linux下安装ROHC协议库并测试
所以安装步骤就是:
先在解压目录下新建一个build文件夹
然后在命令行cd到该文件夹,输入:
sudo apt-get install cmake
cmake /这里写你的安装路径
make
Linux下安装ROHC协议库并测试
Linux下安装ROHC协议库并测试
我这里是因为已经装过一次,build文件夹不为空,所以会报错,如果build是空的就会成功。
Linux下安装ROHC协议库并测试
 
7.然后我们来装ROHC
 
8.打开rohc的解压目录,找到README
Linux下安装ROHC协议库并测试
我们去找INSTALL
Linux下安装ROHC协议库并测试
Linux下安装ROHC协议库并测试
所以很明显了,这个库本身不需要另外的支持包,但是如果想加点什么鬼,例如测试什么的,就需要别的包支持,然后列出了一大堆包,其中就有我们已经装好的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不支持。
 
9.最后是测试。
 
10.在ROHC官网上找到测试的教程,网址如下:
https://rohc-lib.org/wiki/doku.php?id=library-tests
例如我们测试无反馈信道的情况:
cd tests/non_regression
按照教程,输入:
./test_non_regression_*.sh
Linux下安装ROHC协议库并测试
为什么不行?
那是因为还没有生成这个工程的输出文件,就这个鬼搞了我好久好久,真是槽点满满。
我们在这个目录下能找到一个.c文件,但是千万不要用gcc编译它,会被编译器玩死的,编译器会告诉你找不到某个文件,但是你发现那个文件就在上一级目录,或者在别的目录,你很开心,复制到工程目录,再编译,然后编译器找不到另一个文件,形成恶性循环。而那些“找不到”的文件,都在makefile里面明确指出了路径,makefile就是文件之间的走线啊。
真正的解决方法是:
在non_regression目录下
make test_non_regression
没错,不需要.c后缀,我也不知道为什么。
然后就可以:
./test_non_regression_*.sh
Linux下安装ROHC协议库并测试
终于成功了。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/23412.html