前提:依赖关系请移步上篇博客。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. 【BZOJ2815】[ZJOI2012]灾难 拓扑排序+LCA

    [BZOJ2815][ZJOI2012]灾难 题目描述 阿米巴是小强的好朋友. 阿米巴和小强在草原上捉蚂蚱.小强突然想,果蚂蚱被他们捉灭绝了,那么吃蚂蚱的小鸟就会饿死,而捕食小鸟的猛禽也会跟着灭绝,从 ...

  2. 【BZOJ1901】Zju2112 Dynamic Rankings 主席树+树状数组

    [BZOJ1901]Zju2112 Dynamic Rankings Description 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j ...

  3. Android数据存储之SQLite 数据库学习

    Android提供了五种存取数据的方式 (1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML的格式存放在设备中 (2) SQLite数据库,存放各种数据, ...

  4. Windows下Git免密码pull&push

    Windows下Git在使用http方式的时候clone,pull,push需要输入用户名及密码,通过以下设置可以免密码 在用户文件夹创建文件.git-credentials内容如下 https:// ...

  5. oracle权限赋予

    上节讲的创建的software用户能否访问其他用户的表呢 1,创建software用户,密码设置为system create user software identified by system 2, ...

  6. rpyc

    import json import socket from thread import * from ansible_api import * from rpyc import Service fr ...

  7. 符合语言习惯的 Python 优雅编程技巧

    Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净.整洁.一目了然.要写出 Pythonic(优雅的.地道的.整洁的)代码,需要多看多学大牛们写的代码,github 上有很多非常优秀 ...

  8. 第1章 1.7计算机网络概述--理解OSI参考模型分层思想

    OSI七层模型,知识参考理论. 分层标准的好处: 1.不同的硬件生产商生产的硬件产品,连通后就可以用了,有助于互联网发展. 2.分层,分成不同的模块,某一层的变化,不会影响其他层.如:IPv4改为IP ...

  9. Underscore.js (1.7.0)-集合(Collections)(25)

    稽核函数(数组或对象) each_.each(list, iteratee, [context]) 别名: forEach 遍历list中的所有元素,按顺序用遍历输出每个元素.如果传递了context ...

  10. 使用Vue-cli搭建项目与目录详解

    1.介绍 vue-cli这个构建工具大大降低了webpack的使用难度,支持热重载,有webpack-dev-server的支持,相当于启动了一个请求服务器,给你搭建了一个测试环境,只关注开发就OK. ...