ubuntu server 编译dpdk常见问题

426 阅读1分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路

安装环境

centos 7 垃圾,第三方库不好安装

[root@bogon dpdk-stable-18.11.10]# cat /proc/version 
Linux version 3.10.0-1062.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019
[root@bogon dpdk-stable-18.11.10]# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
[root@bogon dpdk-stable-18.11.10]#

ubuntu server

只安装了 make gcc,空白系统

root@/dpdk-stable-18.11.10# cat /proc/version
Linux version 5.4.0-81-generic (buildd@lgw01-amd64-052) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021

从windows拷贝来的目录

如果直接在linux git clone,没啥问题跳过

如果曾经出现在windows中,可能sh文件会把 \n 替换为 \r\n

find ./ -name "*.sh" | xargs sed -i 's/\r$//'

增加脚本的可执行权限

find ./ -name "*.sh" | xargs chmod +x

安装

make config

这一步,仓库里没写,测试好像还是需要的

make config T=x86_64-native-linuxapp-gcc
  • 如果这一步出错,可能提示的就是 先决条件 中的问题,修复换行符与权限即可

make

make T=x86_64-native-linuxapp-gcc

常见问题

  • 致命错误:numa.h:没有那个文件或目

    dpdk-stable-18.11.10/lib/librte_eal/linuxapp/eal/eal_memory.c:28:18: 致命错误:numa.h:没有那个文件或目录
     #include <numa.h>
                      ^
    编译中断
    
    • 在线安装

      yum install libnuma-devel
      apt install libnuma-dev
      

      centos 失败,没包,猜测centos老了吧

    • 彻底解决办法

      • 换了ubuntu,垃圾centos
  • 缺少加密库

    /usr/bin/ld: cannot find -lcrypto
    collect2: error: ld returned 1 exit status
    
    • 在线安装
      apt install libopenssl