歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

在Ubuntu平台安裝libpcap

通過官方提供的資料可以了解安裝的基本環境:
To compile the libpcap library, your Unix distribution must have a C compiler, and the lex and bison text parsers. For Open Source Unix distributions such as Linux and FreeBSD, the gcc, flex, and bison programs provide these functions.
安裝Ubuntu操作系統後是沒有安裝C compiler、flex、bison

1.安裝gcc編譯器
直接在終端執行sudo apt-get install gcc libc6-dev 安裝gcc(需要系統光盤),要不然連helloworld這麼簡單的都編譯不過,或者在編譯tar.gz文件時提示“C compiler cannot create executable”的錯誤。

編寫helloworld測試gcc編譯器:
#include
int main(){
printf("hello,world!\n");
return 0;
}

第一次接觸gcc編譯器,發現不支持void main()這種main函數的。

2.編譯GNU M4 (version 1.4)
這個是編譯flex必備的環境,否則會提示“GNU M4 1.4 is required”的錯誤

3.編譯flex(version 2.5.33)
沒有flex,直接安裝libpcap會提示“Your operating system's lex is insufficient to compile libpcap”錯誤。

4.編譯bison(version 2.3)
在安裝flex後直接安裝libpcap會提示“don't have both flex and bison;reverting to lex/yacc”錯誤,前面安裝的是flex,就需要搭配bison

5.編譯libpcap
全面四步完成後,就可以使用下面三個指令安裝libpcap環境:
./configure
make
make install

簡單的例子測試一下libpcap:
//device.c
#include
int main(int argc,char *argv[]){
char *dev, errbuf[PCAP_ERRBUF_SIZE];
dev=pcap_lookupdev(errbuf);
if(dev==NULL){
fprintf(stderr,"couldn't find default device: %s\n",errbuf);
return(2);
}
printf("Device: %s\n",dev);
return(0);
}

編譯指令:gcc -o device device.c -lpcap

備注:編譯時要使用libpcap的參數-lpca,否則會提示“pcap_lookupdev 未定義的引用”的錯誤。

運行指令:./device

6.總結
就這麼簡單的幾個步驟,我花了一天的時間才弄出來的,跑到國外查閱了很多資料,國內幾乎找不到這方面的資料,主要原因其一是使用Ubuntu的人很少,而 使用RedHat的直接安裝就可以,本身系統不會缺少flex、bison;其二是我不熟悉在linux平台安裝程序,不象windows平台點幾下鼠標 就可以安裝的,還有flex、bison很難才找到提供下載的地方,也是在國外。

備注:
1)出現“無法創建一般文件 '/usr/local/bin/m4':Permission denied”錯誤,權限問題,Ubuntu默認root用戶不啟用的,可以使用sudo指令解決這個問題。

2)Ubuntu不支持rpm安裝文件,rpm是Red Hat操作系統的標准安裝文件格式,可以采用alien將rpm包轉換為deb包。
安裝alien:sudo apt-get install alien
alien使用:alien ****.rpm
這樣就生成Ubuntu支持的****.deb
安裝deb:sudo dpkg -i ****.deb
或者右鍵菜單,安裝deb

Copyright © Linux教程網 All Rights Reserved