44. Building Your Own Application

44. Building Your Own Application

44.1. Compiling a Sample Application in the Development Kit Directory

        在编译示例应用程序(例如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
44.2. Build Your Own Application Outside the Development Kit

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

ifeq ($(RTE_SDK),)
$(error "Please define RTE_SDK environment variable")
endif

# Default target, can be overriden by command line or environment
RTE_TARGET ?= x86_64-native-linuxapp-gcc

include $(RTE_SDK)/mk/rte.vars.mk

# binary name
APP = helloworld

# all source are stored in SRCS-y
SRCS-y := main.c

CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)

include $(RTE_SDK)/mk/rte.extapp.mk

~$ 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
44.3. Customizing Makefiles

        Hello World示例应用程序提供的默认makefile是一个很好的起点。它包括:

  • 在开始处,$(RTE_SDK)/mk/rte.vars.mk 
  • 在末尾处,$(RTE_SDK)/mk/rte.extapp.mk 
        用户必须定义几个变量:
  • APP:应用程序的名字。
  • SRCS-y:源文件列表(*.c,*.S)。
44.3.2. Library Makefile
        也可以用同样的方法构建库:
  • 在开始处,$(RTE_SDK)/mk/rte.vars.mk 。
  • 在末尾处,$(RTE_SDK)/mk/rte.extlib.mk 。
        唯一的区别是,变量APP被LIB代替,它包含了库的名称。例如,libfoo.a。
44.3.3. Customize Makefile Actions
        可以定义一些变量来定制Makefile操作。最常见的如下所示。参考 Development Kit Build System Makefile Description
详细章节:
  • VPATH:用于构建系统搜索源的路径列表,默认情况下,RTE_SRCDIR将包含在VPATH中。
  • CFLAGS_my_file.o:用于编译my_file.c的指定标志。
  • CFLAGS:用于编译的C文件的标志。上面的是针对某个文件,这个是所有文件。
  • LDFLAGS:链接相关的标志。
  • CPPFLAGS:C预处理相关标志(仅使用.s文件时设置)。
  • LDLIBS:链接库清单,eg,-L /path/to/libfoo - lfoo。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值