码农知识堂 - 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
    
    
    
    
  • 相关阅读:
    03.大型高并发微服务系统设计
    Java(一)(引用类型的参数在传递,方法重载,面向对象编程基础)
    OVN 流表基础 -- 基于 kubeOVN (一)
    Linux 爱好者线下沙龙:成都场圆满结束 & 下一场西子湖畔相见 | LLUG·第五站
    TeeChart .NET 4.2023.10.25 Crack
    MapReduce编程规范及示例编写
    U2-Net——U-Net中套U-Net,套娃式的分割模型
    【vim 学习系列文章 9 -- .vim 脚本文件开发学习】
    Gradle复合构建
    mac 使用 homebrew 安装软件问题及处理方法
  • 原文地址:https://blog.csdn.net/jacicson1987/article/details/127094146
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号