码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 最简单的Makefile编译DPDK应用


    环境变量

    RTE_SDK 指定dpdk目录
    RTE_TARGET指定编译好的DPDK编译的目标目录
    LD_LIBRARY_PATH 增加DPDK的库目录

    export RTE_SDK=/root/rdma/dpdk-20.05
    export RTE_TARGET=build
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RTE_SDK/$RTE_TARGET/lib
    

    Makefile

    将目录下所有.c文件编译,链接dpdk库

    
    SRC_PATH = .
    
    SOURCES += $(wildcard $(SRC_PATH)/*.c)
    
    
    TARGET = hello
    CFLAGS += -I$(RTE_SDK)/$(RTE_TARGET)/include/
    CFLAGS += -g
    
    LIBS += -L$(RTE_SDK)/$(RTE_TARGET)/lib
    LIBS += -ldpdk -lrte_eal -lrte_mempool -lrte_ring 
    LIBS += -lnuma -ldl -lpthread
    OBJS=${SOURCES:.c=.o}
    
    all: $(TARGET)
    
    $(TARGET): ${OBJS}
            gcc $(CFLAGS) -o $(TARGET) ${OBJS} $(LIBS)
    
    .SUFFIXES:
    .SUFFIXES: .c .o
    .c.o:
            gcc $(CFLAGS) -o $@ -c $<
    clean:
            rm -f $(TARGET)
            rm -f $(OBJS)
    

    实例

    将DPDK example helloword中的main.c拿出来测试

    root@ubuntu:~/rdma/hellodpdk# tree
    .
    ├── main.c
    └── Makefile
    

    编译运行

    root@ubuntu:~/rdma/hellodpdk# make
    gcc -I/root/rdma/dpdk-20.05/build/include/ -g -o main.o -c main.c
    gcc -I/root/rdma/dpdk-20.05/build/include/ -g -o hello ./main.o -L/root/rdma/dpdk-20.05/build/lib -ldpdk -lrte_eal -lrte_mempool -lrte_ring  -lnuma -ldl -lpthread
    root@ubuntu:~/rdma/hellodpdk# 
    root@ubuntu:~/rdma/hellodpdk# ls
    hello  main.c  main.o  Makefile
    root@ubuntu:~/rdma/hellodpdk# 
    root@ubuntu:~/rdma/hellodpdk# ./hello 
    EAL: Detected 8 lcore(s)
    EAL: Detected 1 NUMA nodes
    EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
    EAL: Selected IOVA mode 'PA'
    EAL: No available hugepages reported in hugepages-1048576kB
    EAL: Probing VFIO support...
    EAL: VFIO support initialized
    EAL: No legacy callbacks, legacy socket not created
    hello from core 1
    hello from core 2
    hello from core 3
    hello from core 4
    hello from core 5
    hello from core 6
    hello from core 7
    hello from core 0
    
    
    
    
  • 相关阅读:
    LeetCode:买卖股票 系列 含冷冻期、含手续费(C++)
    MySQL数据库期末考试试题及参考答案(06)
    [SpringBoot]基于jasypt-spring-boot-starter对配置加解密
    Linux代码初试__进度条
    2022中国大健康展,山东大健康展,济南健康展,健康产业展
    2023年AI生成音频研究报告
    uniapp——授权报错,选择合适的基础库
    RPA的价值和优势有哪些?
    LeetCode 第6题:Z字形变换(Python3解法)
    CSS 动画特效运用目录
  • 原文地址:https://blog.csdn.net/jacicson1987/article/details/127094146
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号