博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
44. Building Your Own Application
阅读量:4057 次
发布时间:2019-05-25

本文共 1897 字,大约阅读时间需要 6 分钟。

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/apphelloworld 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 environmentRTE_TARGET ?= x86_64-native-linuxapp-gccinclude $(RTE_SDK)/mk/rte.vars.mk# binary nameAPP = helloworld# all source are stored in SRCS-ySRCS-y := main.cCFLAGS += -O3CFLAGS += $(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操作。最常见的如下所示。参考
 
详细章节:
  • VPATH:用于构建系统搜索源的路径列表,默认情况下,RTE_SRCDIR将包含在VPATH中。
  • CFLAGS_my_file.o:用于编译my_file.c的指定标志。
  • CFLAGS:用于编译的C文件的标志。上面的是针对某个文件,这个是所有文件。
  • LDFLAGS:链接相关的标志。
  • CPPFLAGS:C预处理相关标志(仅使用.s文件时设置)。
  • LDLIBS:链接库清单,eg,-L /path/to/libfoo - lfoo。

转载地址:http://kdqci.baihongyu.com/

你可能感兴趣的文章
course_2_assessment_6
查看>>
coursesa课程 Python 3 programming course_2_assessment_7 多参数函数练习题
查看>>
coursesa课程 Python 3 programming course_2_assessment_8 sorted练习题
查看>>
在unity中建立最小的shader(Minimal Shader)
查看>>
1.3 Debugging of Shaders (调试着色器)
查看>>
关于phpcms中模块_tag.class.php中的pc_tag()方法的含义
查看>>
linux安装usb wifi接收器
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>
在C++中使用Lua
查看>>
socket编程中select的使用
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
为什么读了很多书,却学不到什么东西?
查看>>
长文干货:如何轻松应对工作中最棘手的13种场景?
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>