实战tcpdump4.99.4交叉编译

主要是记录交叉编译的一个坑,不知道为什么网上的教程都没遇到过。

环境

  • libpcap 1.10.4
  • tcpdump 4.99.4
  • WSL

编译步骤

注意事项

  1. 注意解压的时候文件夹名需要是libpcap-1.10.4,由于我是在github直接下载zip的压缩包名是libpcap-libpcap-1.10.4.tar.gz解压后libpcap-libpcap-1.10.4,编译tcpdump时会出现问题找不到libpcap
  2. libpcap-1.10.4和tcpdump-4.99.4需要放在同一级目录下
1.编译libpcap
  1. tar zxvf libpcap-1.10.4.tar.gz
  2. cd libpcap-1.10.4
  3. ./configure --prefix=$PWD/install --host=arm CC=/opt/gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
  4. make
  5. make install
2.编译tcpdump(默认是静态链接)
  1. tar zxvf tcpdump-4.99.4.tar.gz

  2. cd tcpdump-4.99.4.tar.gz

  3. ./configure --prefix=$PWD/install --host=arm CC=/opt/gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc

  4. make 可能会提示错误如下:

    /opt/gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -DHAVE_CONFIG_H -I. -I.../libpcap-1.10.4 -g -O2 -c ./tcpdump.c

    In file included from /opt/gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/string.h:634:0,

    from ./tcpdump.c:117:

    ./netdissect.h:133:14: error: expected identifier or '(' before 'extension '

    extern char *strdup (const char *str);

    ^

    ./netdissect.h:137:14: error: expected identifier or '(' before 'extension '

    extern char *strsep(char **, const char *);

    那就去修改Makefile的INCLS

    makefile 复制代码
    INCLS = -I. -I../libpcap-1.10.4/install/include
  5. make install

相关推荐
PyAIGCMaster9 分钟前
ubuntu装P104驱动
linux·运维·ubuntu
奈何不吃鱼10 分钟前
【Linux】ubuntu依赖安装的各种问题汇总
linux·运维·服务器
icy、泡芙12 分钟前
T527-----音频调试
linux·驱动开发·音视频
aherhuo15 分钟前
kubevirt网络
linux·云原生·容器·kubernetes
zzzhpzhpzzz23 分钟前
Ubuntu如何查看硬件型号
linux·运维·ubuntu
蜜獾云26 分钟前
linux firewalld 命令详解
linux·运维·服务器·网络·windows·网络安全·firewalld
o(╥﹏╥)1 小时前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
娶不到胡一菲的汪大东1 小时前
Ubuntu概述
linux·运维·ubuntu
Yuan_o_1 小时前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端
那就举个栗子!2 小时前
Ubuntu 20.04下Kinect2驱动环境配置与测试【稳定无坑版】
linux·ubuntu