美文网首页DPDK文档翻译DPDK学习指南
DPDK编程指南(翻译)( 三十四)

DPDK编程指南(翻译)( 三十四)

作者: 半天妖 | 来源:发表于2017-11-21 09:24 被阅读191次

34. 构建你自己的应用程序

34.1. 在DPDK中编译一个示例程序

当编译示例应用程序(如 hello world)时,需要导出变量:RTE_SDK 和 RTE_TARGET。

    ~/DPDK$ cd examples/helloworld/
    ~/DPDK/examples/helloworld$ export RTE_SDK=/home/user/DPDK
    ~/DPDK/examples/helloworld$ export RTE_TARGET=x86_64-native-linuxapp-gcc
    ~/DPDK/examples/helloworld$ make
        CC main.o
        LD helloworld
        INSTALL-APP helloworld
        INSTALL-MAP helloworld.map

生成的二进制文件默认放在build目录下:

    ~/DPDK/examples/helloworld$ ls build/app
    helloworld helloworld.map

34.2. 在DPDK外构建自己的应用程序

示例应用程序(Hello World)可以复制到一个新的目录中作为开发目录:

    ~$ cp -r DPDK/examples/helloworld my_rte_app
    ~$ cd my_rte_app/
    ~/my_rte_app$ export RTE_SDK=/home/user/DPDK
    ~/my_rte_app$ export RTE_TARGET=x86_64-native-linuxapp-gcc
    ~/my_rte_app$ make
        CC main.o
        LD helloworld
        INSTALL-APP helloworld
        INSTALL-MAP helloworld.map

34.3. 定制 Makefiles

34.3.1. 应用程序 Makefile

示例应用程序默认的makefile可以作为一个很好的起点,我们可以直接修订使用。它包括:

  • 起始处包含 $(RTE_SDK)/mk/rte.vars.mk
  • 终止处包含 $(RTE_SDK)/mk/rte.extapp.mk

用户必须配置几个变量:

  • APP: 应用程序的名称
  • SRCS-y: 源文件列表(*.c, *.S)。

34.3.2. 库 Makefile

同样的方法也可以用于构建库:

  • 起始处包含 $(RTE_SDK)/mk/rte.vars.mk
  • 终止处包含 $(RTE_SDK)/mk/rte.extlib.mk

唯一的不同之处就是用LIB名称替换APP的名称,例如:libfoo.a。

34.3.3. 定制 Makefile 动作

可以通过定制一些变量来制定 Makefile 动作。常用的动作列表可以参考文档 Development Kit Build System 章节 Makefile Description

  • VPATH: 构建系统将搜索的源文件目录,默认情况下 RTE_SRCDIR 将被包含在 VPATH 中。
  • CFLAGS_my_file.o: 编译c文件时指定的编译flag标志。
  • CFLAGS: C编译标志。
  • LDFLAGS: 链接标志。
  • CPPFLAGS: 预处理器标志(只是用于汇编.s文件)。
  • LDLIBS: 链接库列表(如 -L /path/to/libfoo - lfoo)。

相关文章

网友评论

    本文标题:DPDK编程指南(翻译)( 三十四)

    本文链接:https://www.haomeiwen.com/subject/kysivxtx.html