编译dpdk19.08.2中example时一系列报错解决

dpdk19.08编译过程全解

  • dpdk 介绍
  • 问题描述
  • 编译过程
    • 执行Step 1
      • 报错一
        • 解决方式
      • 报错二
        • 解决方式
    • 继续执行Step 2
      • 48的时候报错
    • 49没有修改成功
    • 输入60退出
  • 使用过程
    • 执行make
      • 报错一
        • 解决方式
    • 继续make
      • 报错二
        • 解决方式
    • 继续make
    • 执行生成文件helloworld
      • 报错三
        • 解决方式
    • 执行make
  • 完成
  • 参考链接

在这里插入图片描述

dpdk 介绍

  数据平面开发套件(DPDK [1],Data Plane Development Kit)是由6WIND,Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。[1]

问题描述

  编译dpdk19.08.2,并使用example的案例时报错及解决方式。

编译过程

执行Step 1

  1. 首先下载dpdk19.08.2,解压,进入解压目录
cd ./dpdk-stable-19.08.2
  1. 使用dpdk提供的工具编译
./usertools/dpdk-setup.sh

输入36 ,回车

报错一

eal/eal_memory.c:32:10: fatal error: numa.h: No such file or directory

报错原因是numa没下载。

解决方式

下载缺失部分

sudo apt-get install libnuma-dev

然后重新进入执行

./usertools/dpdk-setup.sh

输入36 ,回车

报错二

Build complete [x86_64-native-linuxapp-gcc]
Installation cannot run with T defined and DESTDIR undefined

报错原因是,没有配置安装目录,无法安装。

解决方式

本次开发不需要安装dpdk,所以忽略这个报错。

继续执行Step 2

依次输入43-50,输入49和50的时候,还需要在回车后第二次输入512

48的时候报错

/usr/bin/env: ‘python’: No such file or directory

没有找到python的路径,输入下面命令,发现系统是有python的,只是不是路径上

whereis python3

添加一个链接即可

sudo ln -s /usr/bin/python3 /usr/bin/python

49没有修改成功

Warning: routing table indicates that interface 0000:03:00.0 is active. Not modifying

需要先把这个网卡down掉,再修改
sudo ifconfig eth160 down

输入60退出

完成dpdk编译配置

使用过程

进入examples目录的helloworld案例

cd examples/helloworld

执行make

make

报错一

/bin/sh: 1: pkg-config: not found

报错原因是没有安装pkg-config

解决方式
sudo apt-get install pkg-config

继续make

报错二

Makefile:44: *** "Please define RTE_SDK environment variable"。 停止。

报错原因,没有定义RTE_SDK 环境变量

解决方式

进入到dpdk解压目录,查看解压目录路径,然后配置上去

export RTE_SDK=解压路径
或者
export RTE_SDK=$(PWD)

还需要配置刚刚dpdk编译生成的目录的环境变量
在这里插入图片描述
通常是选择的dpdk环境的名称

export RTE_TARGET=x86_64-native-linuxapp-gcc

如果上面一步的 RTE_TARGET 没有配置正确,会有下面的报错:

***mk/internal/rte.extvars.mk:29: *** Cannot find .config in ***

修改成正确的就行了

继续make

进入helloworld目录,执行 make
输出如下则编译成功

CC main.o
LD helloworld
INSTALL-APP helloworld
INSTALL-MAP helloworld.map

执行生成文件helloworld

执行

./build/helloworld

报错三

EAL: Cannot get hugepage information.
已放弃 (核心已转储)

报错原因应该是巨页没有配置

解决方式
  1. 首先可以查看以下配置信息
cat /proc/meminfo | grep Huge输出
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kBcat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
输出
0

依次执行下面的命令配置巨页

1.
echo '1024' > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages2.
如果没/mnt/huge这个文件夹,就创建一个huge,有则忽略下面这一步
mkdir /mnt/huge3.
mount -t hugetlbfs nodev /mnt/huge

执行make

make clean
make
./build/helloworld输出
hello from core 1
hello from core 0

完成

以上就全部完成,可以去编写自己的代码了,报错部分基本解决,还有部分警告部分还没有去解决。

参考链接

百度百科— dpdk
dpdk — 官网

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openeuler 22.03 lts sp4 使用 cri-o 和 静态 pod 的方式部署 k8s-v1.32.0 高可用集群

前情提要 整篇文章会非常的长…可以选择性阅读,另外,这篇文章是自己学习使用的,用于生产,还请三思和斟酌 静态 pod 的部署方式和二进制部署的方式是差不多的,区别在于 master 组件的管理方式是 kubectl 还是 systemctl有 kubeadm 工具,为什么还要用静态 pod 的方式部署?…

渗透测试之WAF规则触发绕过规则之规则库绕过方式

目录 Waf触发规则的绕过 特殊字符替换空格 实例 特殊字符拼接绕过waf Mysql 内置得方法 注释包含关键字 实例 Waf触发规则的绕过 特殊字符替换空格 用一些特殊字符代替空格,比如在mysql中%0a是换行,可以代替空格 这个方法也可以部分绕过最新版本的…

C# dataGridView1获取选中行的名字

在视觉项目中编写的框架需要能够选择产品或复制产品等方便后续换型,视觉调试仅需调试相机图像、调试视觉相关参数、标定,再试跑调试优化参数。 C# dataGridView1 鼠标点击某一行能够计算出是那一行 使用CellMouseClick事件 首先,在Form的构造…

Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat

目录 ?编辑 一、Ubuntu22.04介绍 二、Ubuntu与Centos的区别 三、基于VMware安装Ubuntu Server 22.04 下载 VMware安装 1.创建新的虚拟机 2.选择类型配置 3.虚拟机硬件兼容性 4.安装客户机操作系统 5.选择客户机操作系统 6.命名虚拟机 7.处理器配置 8.虚拟机内存…

Linux基础指令

基本文件操作 补充: “cd -” 可以前往刚才所在目录 “ls 文件路径” 列举指定路径的文件 “ls -a”列出隐藏文件 “ls -l”可以缩写为“ll” 周边概念 读取操作 “cat 文件名”阅读文本文件内容,可以使用Tab键补全文件…

【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)

目录 1 -> 生命周期 1.1 -> 应用生命周期 1.2 -> 页面生命周期 2 -> 资源限定与访问 2.1 -> 资源限定词 2.2 -> 资源限定词的命名要求 2.3 -> 限定词与设备状态的匹配规则 2.4 -> 引用JS模块内resources资源 3 -> 多语言支持 3.1 -> 定…

【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南

文章目录 🌍一. WEB 开发❄️1. 介绍 ❄️2. BS 与 CS 开发介绍 ❄️3. JavaWeb 服务软件 🌍二. Tomcat❄️1. Tomcat 下载和安装 ❄️2. Tomcat 启动 ❄️3. Tomcat 启动故障排除 ❄️4. Tomcat 服务中部署 WEB 应用 ❄️5. 浏览器访问 Web 服务过程详…

C语言练习(29)

13个人围成一圈&#xff0c;从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子&#xff0c;找出最后留在圈子中的人原来的序号。本题要求用链表实现。 #include <stdio.h> #include <stdlib.h>// 定义链表节点结构体 typedef struct Node {int num;struct Nod…

简要介绍C语言和c++的共有变量,以及c++特有的变量

在C语言和C中&#xff0c;变量是用来存储数据的内存位置&#xff0c;它们的使用方式和特性在两种语言中既有相似之处&#xff0c;也有不同之处。以下分别介绍C语言和C的共有变量以及C特有的变量。 C语言和C的共有变量 C语言和C都支持以下类型的变量&#xff0c;它们在语法和基…

【UE插件】Sphinx关键词语音识别

视频教程&#xff1a; Unreal Engine - Speech Recognition - Free Pluginhttps://www.youtube.com/watch?vKBcXNnSdWog&t622s 官方教程&#xff1a; Sphinx: Speech Recognition Plugin | Unreal Engine Community Wikihttps://unrealcommunity.wiki/speech-recognition…

图漾相机——C++语言属性设置

文章目录 前言1.SDK API功能介绍1.1 Device组件下的API测试1.1.1 相机工作模式设置&#xff08;TY_TRIGGER_PARAM_EX&#xff09;1.1.2 TY_INT_FRAME_PER_TRIGGER1.1.3 TY_INT_PACKET_DELAY1.1.4 TY_INT_PACKET_SIZE1.1.5 TY_BOOL_GVSP_RESEND1.1.6 TY_BOOL_TRIGGER_OUT_IO1.1.…

Spring AI 在微服务中的应用:支持分布式 AI 推理

1. 引言 在现代企业中&#xff0c;微服务架构 已成为开发复杂系统的主流方式&#xff0c;而 AI 模型推理 也越来越多地被集成到业务流程中。如何在分布式微服务架构下高效地集成 Spring AI&#xff0c;使多个服务可以协同完成 AI 任务&#xff0c;并支持分布式 AI 推理&#x…

研发的立足之本到底是啥?

0 你的问题&#xff0c;我知道&#xff01; 本文深入T型图“竖线”的立足之本&#xff1a;专业技术 技术赋能业务能力。研发在学习投入精力最多&#xff0c;也误区最多。 某粉丝感发展遇到瓶颈&#xff0c;项目都会做&#xff0c;但觉无提升&#xff0c;想跳槽。于是&#x…

HarmonyOS DevEco Studio模拟器点击运行没有反应的解决方法

HarmonyOS DevEco Studio模拟器点击运行没有反应的解决方法 翻遍了CSDN&#xff0c;试了所有办法都没办法&#xff0c;最后偶然间竟然解决了 解决方法其实很简单&#xff1a;本地模拟器下载路径下面不能有中文。。。。。 切换正确路径以后&#xff0c;成功运行&#xff0c;哦…

升级到Mac15.1后pod install报错

升级Mac后&#xff0c;Flutter项目里的ios项目运行 pod install报错&#xff0c; 遇到这种问题&#xff0c;不要着急去百度&#xff0c;大概看一下报错信息&#xff0c;每个人遇到的问题都不一样。 别人的解决方法并不一定适合你&#xff1b; 下面是报错信息&#xff1a; #…

C++入门(1)

1.第一个C程序 1.1基础程序 #include"iostream" //头文件 using namespace std; //使用std的名字空间int main() //main函数 {cout<<"Hello world"<<endl; //输出return 0; } 1.2main函数 main函数是程序的入口&#xff0c;C的程…

c++:vector

1.使用 1.1构造函数 常见的三种构造方式&#xff1a;空构造&#xff0c;拷贝构造&#xff0c;指定元素构造 1.2iterator begin和end也分为正向和反向。 注意&#xff1a;反向迭代器可以反向遍历是因为在定义rbegin和rend函数的时候把尾地址给到了rbegin&#xff0c;而不是说改…

1.27补题 回训练营

E 智乃的小球 题目描述 在一条无限长的水平直线上&#xff0c;有 n 个小球&#xff0c;每个小球的质量相同&#xff0c;体积可以忽略不计。这些小球初始时位于直线上的不同位置&#xff0c;并且每个小球有一个初始速度&#xff0c;速度为 -1 m/s 或 1 m/s。速度为 -1 m/s 表示…

Hive安装教程

Hive安装教程 文章目录 Hive安装教程写在前面安装下载安装部署安装Hive启动并使用Hive MySQL安装检查当前系统是否安装过MySQL安装初始化数据库 Hive元数据配置到MySQL拷贝驱动配置Metastore到MySQL再次启动Hive 写在前面 Linux版本&#xff1a;CentOS7.5Hive版本&#xff1a;…

大屏 UI 设计风格的未来趋势

在科技飞速革新的时代&#xff0c;大屏设备的应用领域不断拓展&#xff0c;从城市的智能交通指挥中心&#xff0c;到商场的互动广告大屏&#xff0c;再到家庭的超大尺寸智能电视&#xff0c;大屏已然成为信息展示与交互的关键载体。大屏 UI 设计风格也随之不断演变&#xff0c;…