在 ns-3.25中添加 plc(电力线载波) 模块
上一篇安装好了 ns-3.25,这里继续往里添加 plc 模块。整理之前现推荐一个网站,大家可以参考。
英属哥伦比亚大学(University of British Columbia,UBC)提供NS-3的PLC模块:http://www.ece.ubc.ca/~faribaa/ns3_plc_software.htm
这里添加 plc 模块分为两部分,第一部分是安装 boost,第二部分是下载 plc 源代码并编译
==============================第一部分:安装boost =======================================
笔者试了两种方法,因为首次安装的时候使用方法1成功安装,由于解决一些其他问题,需要另一版本的 boost,这次方法1 就行不通了,所以笔者又寻得方法2,大家在方法1安装不成功的情况下,可以试一下方法2。(方法参考哪位老师的忘了,当时错误很多,很乱,只顾整理了)
方法1:
1、下载boost安装包到 usr/local/ 目录下, https://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.bz2/download (笔者使用远程桌面,网速不给力,直接windows下载安装包拷贝进去的)其他版本可在boost官网下载:www.boost.org
2、解压缩,tar jxvf boost_1_61_0.tar.bz2
3、转到boost_1_61_0 目录下
4、执行 sudo ./bootstrap.sh 进行环境配置
5、上一步配置好之后,会得到一个bjam文件,执行它 sudo ./bjam (时间比较长,可能要十几分钟)
6、测试,在任意目录下创建 test.cpp
#include<iostream>
#include<boost/lexical_cast.hpp>
int main()
{
int a = boost::lexical_cast<int>("123456");
std::cout<<a<<std::endl;
return 0;
}
运行 sudo g++ test.cpp -o test
sudo ./test
输出 123456,至此,boost安装成功
方法2:
方法1的前四步在这里同样适用,不在赘述,下面从第5步开始
5、(重点)修改 boost_1_61_0/tools/build/example/user-config.jam文件,在最后加上一行 “#using mpi ;”(注:mpi后有个空格,然后是分号)
6、执行 ./b2
7、执行 ./b2 install
8、测试跟方法1的又是一样的,输出 123456 即为安装成功。
===================================第二步:添加 plc 模块===============================
1、切换到 ns-3.25的源目录下, ns-allinone-3.25/ns-3.25/src 目录下,将 plc 模块克隆或者复制到源目录中 git clone https://github.com/ns3-plc-module/plc.git(笔者同样是拷贝进去的)
2、解压(克隆和直接下载的文件压缩方式不知道一样不,笔者是zip文件) sudo unzip plc-master.zip 然后把得到的文件夹名plc-master修改为 plc sudo mv plc-master/ plc/ (顺便说一下,修改文件名没有 / ),这里笔者把plc压缩包删掉了
3、开始编译plc模块
3.1、先配置 ./waf --enable-examples --enable-tests configure 会有如下成功提示

3.2、编译plc模块 ./waf 看到选中白色地方的 plc 没,成了

3.3、我们来测试一把,使用模块自带的简单示例
./waf --run src / plc / examples / plc-netdevice-example

build finished successfully看到没,真成了。
好了,下面就可以使用 ns3-plc 进行工作了
在 ns-3.25中添加 plc(电力线载波) 模块的更多相关文章
- Android中添加自己的模块 【转】
本文转载自:http://wallage.blog.163.com/blog/static/17389624201021791333695/ 转:http://blog.csdn.net/yili_x ...
- 在jekyll模板博客中添加网易云模块
最近使用GitHub Pages + Jekyll 搭建了个人博客,作为一名重度音乐患者,博客里面可以不配图,但是不能不配音乐啊. 遂在博客里面引入了网易云模块,这里要感谢网易云的分享机制,对开发者非 ...
- idea中添加多级父子模块
在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了Project和Module这两个概念. 在 IntelliJ IDEA 中Projec ...
- ZYNQ原理图中添加RTL设计模块
前言 已有的RTL模块怎么添加到原理图中? 流程 (1)添加文件到设计中. (2)右键文件添加到block design中. (3)连线即可. 以上.
- 如何在html中添加引用公共模块文件
1.首先需要修改apache的配置文件: 打开httpd.conf 搜索“AddType text/html .shtml” 搜索结果: AddType text/html .shtml .html ...
- 安装memcached服务器和PHP中添加memcache拓展模块
Memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提拱动态 数据驱动网站的速度. memcached ...
- 如何在Pycharm中添加新的模块
在使用Pycharm编写程序时,我们时常需要调用某些模块,但有些模块事先是没有的,我们需要把模块添加上去. 最近在学习爬虫,写了下面几行代码: 结果出现错误 错误ModuleNotFoundError ...
- JS向固定数组中添加不重复元素并冒泡排序
向数组{7,20,12,6,25}中添加一个不重复的数字,然后按照从小到大的顺序排列 源代码: <!DOCTYPE html> <html> <head> < ...
- 关于ApiCloud的Superwebview在androidstudio中集成微信支付模块,提示模块未绑定的问题
前两天ApiCloud项目集成了微信支付模块,android端今天也将ApiCloud官方的uzWxPay.jar集成了.在编译玩测试的时候提示wxPay模块为绑定!我的项目是使用ApiCloud推出 ...
随机推荐
- linux基础命令学习笔记(二)
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
- Windows激活最高权限
两种方法激活最高权限 方法1 用鼠标右键点击要操作的文件或文件夹,依次进入"属性→安全→高级→所有者→编辑",在"将所有者更改为"栏中选择登录系统的管理员用户, ...
- 关于定时脚本crontab的坑
需求: 每分钟执行一次程序,将处理后的数据写入mongodb 最初做法: 1):写crontab没有响应,于是打算通过shell脚本的while true来执行 当时sb,没控制时间内,而且我还是用n ...
- docker 安装mysql
1.安装docker 参见这个文章第一步:https://www.cnblogs.com/yanglei-xyz/p/10600707.html 2.安装mysql 查找Docker Hub上的mys ...
- Java - 数组排序 -- 浅析稳定性与复杂度
上次我们了解了对数组的基本操作,那么谈到数组,我们就不得不谈谈数组的排序 什么是排序 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列 -- 百度百科 排序是 ...
- docker报错Service 'pwn_deploy_chroot' failed to build: Get https://registry-1.docker.io/v2/library/ubuntu/manifests/16.04:net/http: request canceled
这几天碰到师傅让我帮忙做pwn题环境,结果遇到了坑 第一种方法是:https://blog.csdn.net/zhaoyayua/article/details/60141660 解决办法是执行 vi ...
- Centos给文件设置了777权限仍不能访问解决方案
Centos给文件设置了777权限仍不能访问: 开启了SELinux导致 1.查看SELinux状态:/usr/sbin/sestatus -v ##如果SELinux status参数为enable ...
- 计算机硬件&操作系统
一.计算机的硬件: 控制器:计算机的指挥系统 运算器:数学运算+逻辑运算 存储器I/O设备:存I取O数据 内存(内存条):短期记忆,速度快,但是断电数据会丢失: 外存(硬盘):永久记忆,速度非 ...
- 面试题int和Integer
int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引 ...
- Express安装
安装Express 安装好node.js的前提下,再来安装Express. 1.按win+rR,打开“运行”对话框,输入:“cmd”. 2.需要创建一个目录,然后进入目录并作为当前工作目录. mkdi ...