前提:依赖关系请移步上篇博客。P4行为模型BMV2依赖关系安装:thrift nanomsg nnpy安装

以及,要把下面这些东西装好。

On Ubuntu 14.04, the following packages are required:

    automake
cmake
libjudy-dev
libgmp-dev
libpcap-dev
libboost-dev
libboost-test-dev
libboost-program-options-dev
libboost-system-dev
libboost-filesystem-dev
libboost-thread-dev
libevent-dev
libtool
flex
bison
pkg-config
g++
libssl-dev

Building the code

进入行为模型目录。

1. ./autogen.sh
2. ./configure
3. make

问题:make 发生错误

在ReadMe中有一句话:If you get a nanomsg error when running the tests (make check), try running them as sudo

但是 加上sudo之后,make仍然出现.lo文件错误。

查看make编译文件信息,发现是离开了src文件,于是就cd到src目录进行debug。

在src目录下make,仍然失败!

于是也不嫌麻烦,一个一个make过去。

在有些文件夹中遇到了make: Nothing to be done for 'all'.问题,这是因为之前编译过了。

执行以下命令重新make:

make clean
ldconfig
make

终于,在最后一个文件夹,make出现错误,[packet.lo]有问题。

在文件中找了下,发现没有packet.lo,于是查看了下packet.cpp,并执行gcc编译了下:

gcc packet.cpp

果然出现问题:两个头文件没有找到。

搜索了下,在include文件夹中找到了该文件,cp了过来。

但是,貌似头文件里面还是有包含头文件。。

于是发现了另外一个解决方法,把刚才的packet.h删除掉。

vim packet.cpp

将include <packet.h> 改成 include </home/wasdns/behavioral-model/bm/bm_sim/packet.h>

于是gcc编译通过。但是,新的问题出现了:



看上去貌似是个无底洞。

重装make依然出现问题。

于是根据ReadMe的内容,进行了尝试,禁用掉了一些模块:

In 'debug mode', you probably want to disable compiler optimization and enable symbols in the binary:

./configure 'CXXFLAGS=-O0 -g'

再次执行make即可。

回到Building the code

于是根据上面的问题,应该的步骤是:

1. ./autogen.sh
2. ./configure 'CXXFLAGS=-O0 -g'
3. make

The new bmv2 debugger can be enabled by passing --enable-debugger to configure.

./configure --enable-debugger

Running the tests

跑一下样例。To run the unit tests, simply do:

make check

如果出现nanomsg error,请在命令前面加上sudo。

P4行为模型BMV2安装的更多相关文章

  1. P4行为模型BMV2依赖关系安装:thrift nanomsg nnpy安装

    由于安装p4factory的步骤需要OF的支持,我需要下载p4的行为模型BMV2: thrift是支持BMV2的软件框架:nanomsg是一个实现了几种"可扩展协议"的高性能通信库 ...

  2. P4语言环境安装(一)前端编译器p4c、后端编译器p4c-bm2-ss

    这个P4安装环境是在2020-2-8安装的,安装环境卡了我好几天,把遇到的问题记录下来,有需要的同学可以参考一下,要是说错了或者有问题的话,评论或mail:guidoahead@163.com联系我都 ...

  3. P4 PI库安装

    repo:Github PI P4Runtime - a control plane framework and tools for the P4 programming language 这个是P4 ...

  4. Run P4 without P4factory - A Simple Example In Tutorials.

    前言 本文是我运行P4社区于Github开源教程Tutorials中的P4 SIGCOMM 2015 Tutorial一些实战小结,Github链接: Github. 测试的例子:P4 SIGCOMM ...

  5. P4 前端编译器p4c-bm、后端编译器bmv2命令安装 make error问题

    参考:Github 安装p4c-bm: sudo pip install -r requirements.txt sudo pip install -r requirements_v1_1.txt / ...

  6. Ubuntu 16.04 一键安装P4开发环境记录

    写在最前 P4开发环境安装可采用陈翔同学的一键安装脚本:p4Installer p4c-bm是P4-14的编译器,p4c是现在主流P4-16的编译器,bmv2是支持P4运行的软件交换机 系统环境 在安 ...

  7. p4c-bm安装

    Generates the JSON configuration for the behavioral-model (bmv2).它是用来形成 行为模型BMV2 的 JSON配置 的. Importa ...

  8. P4编程环境搭建

    本文参照了sdnlab上相关文章的搭建推荐. 使用的系统环境为ubuntu 18.04 组件介绍 主要安装五个组件: BMv2:是一款支持P4编程的软件交换机 p4c:是一款P4的编译器 PI:是P4 ...

  9. P4编程环境搭建遇到的问题与解决方法

    在经历了无数的折腾之后,算是折腾,最后采用的是陈翔学长的脚本加上可爱的shell调整装好的. 链接:p4Install 也许是ubuntu18.04的问题,也有可能是我自己把这个系统折腾的有点杂乱的原 ...

随机推荐

  1. Map集合中value()方法与keySet()、entrySet()区别 《转》

    在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet(): 将Map中所有的键存入到set集合中.因为set具备迭代器.所有可以迭代方式取出所有的键 ...

  2. Egret3D学习笔记一 (Unity插件使用)

    一 官方教程: http://developer.egret.com/cn/github/egret-docs/Engine3D/getStarted/getStarted/index.html 大部 ...

  3. {sharepoint} More on SharePoint 2010 Application Pools

    More on SharePoint 2010 Application Pools Print | posted on Friday, December 04, 2009 3:26 PM Blimey ...

  4. U盘安装Win7系统,遇到硬盘鼠标键盘失灵等情况,如何安装U盘中加入USB3.0驱动的支持

    U盘安装系统出现鼠标键盘不能使用,在intel六代处理器平台,安装过程中会出现安装原生镜像不能识别或者鼠标键盘不能使用等情况,可以参考以下方法进行. 风险提示:重装或升级系统会导致系统盘数据丢失,建议 ...

  5. 安装 sql server 2008出现重启电脑,另在server 2012 r2安装sql server 2008 安装不上

    时即使是进行电脑重启,也会报这个错误,那么就不是电脑的问题了,其实是系统注册表在作怪,解决方法如下: 1.开始-->运行,输入regedit,打开注册表管理器: 2. 找到 HKEY_LOCAL ...

  6. vue自定义过滤器的创建和使用

    1.简单介绍   过滤器的作用:实现数据的筛选.过滤.格式化.   过滤器的本质是一个有参数,有返回值的方法.   过滤器可以用在两个地方:双花括号插值和v-bind表达式(后者从2.1.0+开始支持 ...

  7. MVC之Filter

    过滤器的理解 Filter就是过滤器,在WebForm中,各种管道事件就是相当于过滤器,在MVC中,过滤器是单独的一种机制,分为方法过滤器和异常处理过滤器,方法过滤器实现的功能是在执行某一个请求得方法 ...

  8. poj3349 Snowflake Snow Snowflakes【HASH】

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 49991   Accep ...

  9. JavaScript callback function 理解

    看到segmentfault上的这个问题 JavaScript 回调函数怎么理解,觉得大家把异步和回调的概念混淆在一起了.做了回答: 我觉得大家有点把回调(callback)和异步(asynchron ...

  10. 学习Mysql的记录贴 记录的内容是 指令的试用

    前言:操作系统是WIn7 64位 旗舰版   ,Mysql的版本是mysql-5.7.10-winx64 是社区版 就是所谓的最后的免费版本. 下载后 解压 然后配置my.ini文件. ××××××× ...