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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章