【LIBS】交叉编译TCPDUMP

news2024/10/7 6:37:35

目录

  • 1. 安装编译工具
  • 2. 设置环境变量
  • 3. 编译libpcap
    • 3.1 安装依赖
    • 3.2 交叉编译
  • 4. 编译TCPDUMP
    • 4.1 克隆仓库与生成构建环境
    • 4.2 静态链接LIBPCAP
    • 4.3 动态链接LIBPCAP
    • 4.4 构建与安装
  • 5. 查看交叉编译结果
    • 5.1 文件布局

1. 安装编译工具

sudo apt-get install -y autoconf automake libtool pkg-config

2. 设置环境变量

# 交叉编译工具链的根目录
export TLCS_ROOT=...-x86_64_aarch64-linux-gnu

3. 编译libpcap

3.1 安装依赖

sudo apt-get install -y flex bison

3.2 交叉编译

# 克隆源码
git clone --recursive -b libpcap-1.9.1 https://github.com/the-tcpdump-group/libpcap.git

# 进入仓库
cd libpcap

# 生成构建环境
autoreconf -fiv

# 创建构建目录
rm -rf build_aarch64; mkdir build_aarch64 && cd build_aarch64

# 生成Makefile。其中,CFLAGS="-O2" 用于去除生成文件中的调试信息
env -v                                           \
AR=${TLCS_ROOT}/bin/aarch64-linux-gnu-ar         \
CC=${TLCS_ROOT}/bin/aarch64-linux-gnu-gcc        \
RANLIB=${TLCS_ROOT}/bin/aarch64-linux-gnu-ranlib \
CFLAGS="-O2"                                     \
../configure                                     \
--with-pcap=linux                                \
--host=aarch64-linux-gnu                         \
--prefix=${HOME}/libs/libpcap-1.9.1

# 构建与安装
make -j16 && make install

4. 编译TCPDUMP

4.1 克隆仓库与生成构建环境

# 克隆源码
git clone --recursive -b tcpdump-4.9.3 https://github.com/the-tcpdump-group/tcpdump.git

# 进入仓库
cd tcpdump

# 生成构建环境
autoreconf -fiv

# 创建构建目录
rm -rf build_aarch64; mkdir build_aarch64 && cd build_aarch64

4.2 静态链接LIBPCAP

env -v                                           \
CC=${TLCS_ROOT}/bin/aarch64-linux-gnu-gcc        \
AR=${TLCS_ROOT}/bin/aarch64-linux-gnu-ar         \
RANLIB=${TLCS_ROOT}/bin/aarch64-linux-gnu-ranlib \
CPPFLAGS="-I${HOME}/libs/libpcap-1.9.1/include"  \
LDFLAGS="-L${HOME}/libs/libpcap-1.9.1/lib"       \
LIBS="-static -lpcap"                            \
CFLAGS="-O2"                                     \
../configure                                     \
--host=aarch64-linux-gnu                         \
--prefix=${HOME}/libs/libtcpdump-4.9.3

4.3 动态链接LIBPCAP

env -v                                           \
CC=${TLCS_ROOT}/bin/aarch64-linux-gnu-gcc        \
AR=${TLCS_ROOT}/bin/aarch64-linux-gnu-ar         \
RANLIB=${TLCS_ROOT}/bin/aarch64-linux-gnu-ranlib \
CPPFLAGS="-I${HOME}/libs/libpcap-1.9.1/include"  \
LDFLAGS="-L${HOME}/libs/libpcap-1.9.1/lib"       \
LIBS="-dynamic -lpcap"                           \
CFLAGS="-O2"                                     \
../configure                                     \
--host=aarch64-linux-gnu                         \
--prefix=${HOME}/libs/libtcpdump-4.9.3

4.4 构建与安装

make -j16 && make install

5. 查看交叉编译结果

5.1 文件布局

cd ${HOME}/libs
tree . -L 3

交叉编译结果的文件布局

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1411879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【云原生】Docker如何构建镜像

目录 前言 一、基于已有的镜像创建 步骤一:先基于现有的镜像创建一个容器,然后进入容器去完成修改 步骤二:将该容器作为一个模板提交创建为一个新的镜像 步骤三:基于新的镜像,docker run创建一个容器,进…

2024年PMP备考学习资料整合汇总!!

你是否也有过类似的经历? 为了获取备考资料,有的同学在论坛、知乎或者相关垂直类网站下载了很多的资料,这些资料大部分是机构进行获客引流的资料,没有真正的干货。 经常会看到10G、20G的资料包,感觉内容很丰富&#xf…

当项目遭遇资源冲突时,如何巧妙化解?

在项目管理中,资源冲突是一个常见且棘手的问题。当多个项目争夺有限的资源时,如何妥善分配并确保项目顺利进行,成为每个项目经理必须面对的挑战。今天,我们就来探讨几个实用的行动方案,帮助你化解资源冲突,…

Git笔记:常用使用Git命令+使用Git关联本地仓库和远程仓库操作步骤

Git 分布式版本控制系统 常用Git命令 创建一个管理代码的文件目录右键Git Bath打开完成配置信息,输入个人用户名、邮件信息 git config --global user.name 用户名 git config --global user.email 邮箱地址初始化仓库 git init: 初始化仓库 文件目录里会出现一个…

Spring5学习笔记

Spring5 框架概述IOC(Inversion Of Control)IOC基本过程:IOC接口(BeanFactory)IOC接口实现类IOC操作Bean管理一、什么是Bean管理?二、什么是DI?三、Bean管理的两种实现方式1.基于XML配置文件方式实现基于XML方式创建对象基于XML方式注入属性常规属性注入特殊属性值的注入…

Windows中Zookeeper与kafka的安装配置

一、Zookeeper安装与使用 1.安装包下载 直接在官网下载即可Apache ZooKeeper。 下载后直接解压到本地即可。 2.环境配置 1> 在目录中下增加data和log文件夹 2> 解压目录下的 conf 目录,将目录中的 zoo_sample.cfg 文件,复制一份,重…

element el-date-picker type=“datetimerange“

刚写完结果需求变更了。封装的时间组件重新做。结合eacharts 。 直接上代码了 日期选择组件封装 <template><section class"warning-container"><header class"query-head"><el-form :inline"true" class"query-form…

IP被封怎么办?如何绕过IP禁令?

相信很多人遇到过IP禁令&#xff1a;比如你在访问社交媒体、搜索引擎或电子商务网站时会被限制访问&#xff0c;又或者你的的账号莫名被封&#xff0c;这些由于网络上的种种限制我们经常会遭遇IP被封的情况&#xff0c;导致无法使用继续进行网络行动。在本文中&#xff0c;我们…

nvm安装nodejs报错解决

1.出现如下报错 2.解决 去到nvm的安装目录&#xff0c;找到 /settings.txt文件 添加如下代码&#xff1a; node_mirror:npm.taobao.org/mirrors/node/ npm_mirror:npm.taobao.org/mirrors/npm/3.重新下载 如图成功解决

浅析HTTP协议

首先&#xff0c;前端请求后端数据&#xff0c;后端响应数据给前端&#xff0c;这是我们大家都知道的&#xff0c;那其中所涉及到的数据传输协议又是什么呢&#xff1f;这个传输规范就是我们大名鼎鼎的HTTP协议&#xff01; 什么是HTTP协议&#xff1f; HTTP&#xff08;超文本…

Springfox Swagger2从入门到精通

概述&#xff1a;Swagger 是一种用于设计、构建、文档化和使用 RESTful API 的工具。Springfox 是 Swagger 在 Spring 应用中的集成库&#xff0c;提供了自动生成 API 文档的功能。在本文中&#xff0c;我们将探讨如何使用 Springfox Swagger2 在 Spring Boot 项目中生成、配置…

使用json-server提供简易接口

json-server是一款 json 数据服务器&#xff0c;它运行 Express 服务器&#xff0c;可以对json文件、js脚本生成的json数据、远程json数据进行restful风格的增删改查操作&#xff0c;通过指定一个json文件作为api数据源&#xff0c;可以进行分页、排序、关联查询、范围查询等各…

紫光展锐M6780丨超分辨率技术——画质重构还原经典

上一期&#xff0c;我们揭秘了让画质更加炫彩的AI-PQ技术。面对分辨率较低的老电影&#xff0c;光有高饱和度的色彩是不够的&#xff0c;如何能够提高视频影像的分辨率&#xff0c;使画质更加清晰&#xff0c;实现老片新看&#xff1f; 本期带大家揭晓紫光展锐首颗AI8K超高清智…

数据安全之对称加密(九)- 数据填充实现

AES 是一种采用分组加密方法的算法。待加密的明文首先被分割成若干固定大小的块&#xff0c;每个块大小通常是128位。接着&#xff0c;这些块逐一被加密&#xff0c;转换成对应的密文块。这种处理方式确保了加密的一致性和效率&#xff0c;同时也方便了对数据的管理和加密处理。…

从物联网看智慧文旅的未来:技术与实践的完美结合,重塑旅游体验的新篇章

一、物联网技术&#xff1a;智慧文旅的基石 随着科技的飞速发展&#xff0c;物联网技术已经深入到我们生活的方方面面&#xff0c;尤其在智慧文旅领域&#xff0c;物联网技术更是起到了不可或缺的作用。它如同智慧文旅的基石&#xff0c;为旅游行业带来了前所未有的创新和变革…

基于Java SSM框架实现大学生社团管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现大学生社团管理系统演示 摘要 在网络迅速发展的时代&#xff0c;众多的软件被开发出来&#xff0c;给社团带来了很大的选择余地&#xff0c;而且学生越来越追求更个性的需求。在这种时代背景下&#xff0c;社团只能以学生为导向&#xff0c;按学生所需要…

AMEYA360--思瑞浦推出16通道高精度ADC—TPAFE51760

聚焦高性能模拟芯片和嵌入式处理器研发的半导体公司——思瑞浦推出全新16通道高精度ADC——TPAFE51760。 TPAFE51760内置高精度基准&#xff0c;工作温度支持-40C to 125C&#xff0c;产品广泛应用于电力自动化领域中的DTU、FTU、MU等装置。 TPAFE51760产品优势 业界领先的30V模…

成本更低、更可控,云原生可观测新计费模式正式上线

云布道师 在上云开始使用云产品过程中&#xff0c;企业一定遇见过两件“讨厌”事&#xff1a; 难以理解的复杂计费逻辑&#xff0c;时常冒出“这也能收费”的感叹&#xff1b; 某个配置参数调节之后&#xff0c;云产品使用成本不可预估的暴涨。 可观测作为企业 IT 运维必须品…

Redis系列-数据结构篇

数据结构 string&#xff08;字符串&#xff09; redis的字符串是动态字符串&#xff0c;类似于ArrayList&#xff0c;采用预分配冗余空间的方式减少内存的频繁分配。 struct SDS<T>{ T capacity; T len; byte flags; byte[] content; } 当字符串比较短时&#xff0c…

在 Vue 项目中,可以通过设置不同的环境变量来区分不同的环境,例如本地开发环境、测试环境和生产环境。以下是设置环境变量的步骤:

1、在src下新建三个文件夹 &#xff08;.env.local、.env.test 和 .env.prod&#xff09; 2、配置信息 .env.local VUE_APP_ENVlocal VUE_APP_API_URLhttp://localhost:8080.env.test VUE_APP_ENVtest VUE_APP_API_URLhttp://124.220.110.203:9090/ .env.prod VUE_APP_…