• Ubuntu下安装Libpcap


    Libpcap是 Unix/Linux 平台下的网络数据捕获函数包,百度百科是这么说的,唉,不管什么来头,只要帮我完成作业就行,安装过程记录如下:
    还是那个套路,先在网上搜了一把,大概也就那样,被疯狂转载的方法。首先安装gcc编译器,这个早就装好了,然后由于Libpcap有一些依赖包,所以在安装Libpacap之前还得依次安装GNU M4,bison和flex。M4和bison的下载地址:http://ftp.gnu.org/gnu/。flex的下载地址:http://flex.sourceforge.net/。下载目前最新的版本:m4-1.4.15 ,bison-2.4.3 ,flex-2.5.35 和 libpcap-1.1.1。
    把下载的这几个安装包解压缩到同一个目录,终端下用root身份依次进入上述4个文件夹。分别执行如下命令编译安装:
    ./configure
    make
    make install
    好了,顺利安完之后,编写测试代码 test.c 如下(也是Copy的):
    #include<stdio.h>
    int main()
    {
    char *dev, errbuf[1024];
    dev=pcap_lookupdev(errbuf);
    if(dev==NULL){
    fprintf(stderr,"couldn't find default device: %s ",errbuf);
    return(2);
    }
    printf("Device: %s ",dev);
    return(0);
    }
    好了,编译这段代码: gcc -o test test.c -lpcap
    执行: 执行的时候也因该以root身份  sudo su 输入密码
    ./test 执行生成的可执行文件test。好了,问题来了,提示:
    error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory
    在这里卡了很久,在http://opensource.ask4itsolutions.com/forums/vglug-vibrant-gnulinux-user-group/libpcapso1-not-found 这里才找到了解决方法。

    在/usr/local/lib目录下, libpcap.so.1文件就躺在这里,为什么找不到呢。

    解决方法:打开 /etc目录下的文件ld.so.conf ,添加两行
    /usr/local/lib
    /usr/lib
    然后在终端下执行从新加载配置的命令:
    ldconfig

    好了,再编译运行test.c成功输出结果:
    Device: eth0
    如果不以root身份执行,将会输出:
    couldn't find default device: no suitable device found

  • 相关阅读:
    缓存---缓存位置
    缓存---LRU算法实现
    缓存---缓存特征
    Redis---分片
    Redis---复制
    Redis---事件
    Redis---事务
    Redis---持久化
    javaSript 处理电脑和浏览器pc端缩放对页面的影响
    css设置不可复制
  • 原文地址:https://www.cnblogs.com/Stomach-ache/p/3703218.html
Copyright © 2020-2023  润新知