在研究这个安装的过程中,花了两三天,在网上找了很多包,不是gcc安装出错就是源码编译错误各种错误,经过努力后找到了正确的方法。suse-linux系统没有自带gcc,所以需要安装。
一、下载gcc和libpcap安装包
链接:安装包
二、安装gcc和libpcap
1.安装gcc
把gcc传输到suse linux上,放到/home目录下,主要包含以下rpm包(不建议用源码装,依赖包太多,rpm一键安装省事)
执行命令:
rpm -Uvh *.rpm --nodeps --force
安装成功进行下一步
2.安装libpcap
将libpcap包传输到suse linux上,放到home目录下,主要包含以下压缩包,是libpcap的依赖包,必须安装
依次执行命令:
tar -xvzf bison-3.6.3.tar.gz
tar -xvzf flex-2.6.4.tar.gz
tar -xvzf libpcap-1.9.1.tar.gz
tar -xvzf m4-1.4.19.tar.gz
cd m4-1.4.19
bash ./configure
make
make install
cd ..
cd bison-3.6.3
bash ./configure
make
make install
cd ..
cd flex-2.6.4
bash ./configure
make
make insatll
cd ..
cd libpcap-1.9.1
bash ./configure
make
make insatll
都编译成功之后,执行命令
vi /etc/ld.so.conf
#末尾添加/usr/local/lib
执行命令
ldconfig
如果都编译成功,基本是没有问题的,这个时候就需要测试libpcap是否安装成功
在home下执行
touch test.c
vi test.c
#添加以下内容
#include <stdio.h>
#include <pcap.h>
int main(int argc, char *argv[]) {
char errbuf[PCAP_ERRBUF_SIZE];
pcap_if_t* devs;
pcap_if_t* d;
unsigned int i = 0;
//获取全部的dev
if (-1 == pcap_findalldevs(&devs, errbuf)) {
fprintf(stderr, "Could not list device: %s\n", errbuf);
} else {
d = devs;
while (d->next != NULL) {
printf("%d:%s\n", i++, d->name);
d = d->next;
}
}
//释放所有获取的dev
pcap_freealldevs(devs);
return (0);
}
保存文件,执行命令:
gcc -o test test.c -lpcap
./test
安装成功则会出来以下网卡信息