实战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

相关推荐
adnyting43 分钟前
【Linux日新月异(五)】CentOS 7防火墙深度解析:firewalld全面指南
linux·运维·centos
Code Warrior2 小时前
【Linux】Socket编程UDP
linux·udp
CS_浮鱼2 小时前
【Linux】进程概念
linux·运维·服务器
ITVV3 小时前
hadoop-3.4.1 单机伪部署
大数据·linux·hadoop
Elias不吃糖3 小时前
epoll 事件全集、每个事件的含义、哪些事件在实际服务器中最常见、哪些会组合出现
linux·c++·event
人工智能训练4 小时前
Ubuntu中如何进入root用户
linux·运维·服务器·人工智能·ubuntu·ai编程·root
tianshiyeben4 小时前
WGCLOUD监控系统使用指南 - 告警消息整理完整版
linux·运维·服务器·系统安全·zabbix
Unlyrical4 小时前
splice, io_uring_prep_splice 调用(无效参数)
linux·服务器·c++·unix
---学无止境---5 小时前
Linux内核用户身份管理全链路深度剖析:setuid系统调用完整架构
linux
CS_浮鱼5 小时前
【Linux】进程控制
linux·运维·网络