在NS3中建立新的库函数手动添加依赖

问题介绍

ns3自带的waf工具并不会主动寻找依赖,也不知道怎么添加依赖,因此waf编译器无法自己找#include的文件。
在网页上寻找的教程看得我有点云里雾里,结合自己“网络建模与仿真”实验所学的经验,把解决方法分享出来~

解决方法

仿照src目录下其他的模块文件,将自己编写的头文件都放到一个模块中,编译生成新的模块,在用ns3中的waf编译时会自动编译这个模块,从而达到正确找到头文件的目的。

具体步骤

进入ns-3.xx/src文件目录下

仿照src中的其他模块,构建一个自己的模块文件//命名为temp

$./create-module.py temp

$cd temp

$ls
doc examples helper model test wscript

可以看到新模块temp的文件目录结构如下:

在这里插入图片描述

将所需cc、h文件复制到src/temp/model目录下,替换原有的temp.cc和temp.h文件,并重新命名为temp.cc和temp.h

通常temp.cc文件中有引用.h头文件的要求,需要将.cc文件中头文件部分名称相应改变。

在这里插入图片描述

修改src/temp/wscript文件:

$cd src/temp/

$ls

$vim wscript

在这里插入图片描述

关于wscript文件相关说明:

module = bld.create_ns3_module(‘temp’,[‘core’,‘network’,‘internet’,‘stats’])

temp 为创建的模块名,最后模块生成后,将在ns-3.27/build/ns3/目录下,生成一个
temp.h的文件。以后用户自己编写程序,#include “ns3/temp.h” 就可以直接调用这个模块了。

后面的[‘core’,‘network’,‘internet’,‘stats’]是该模块在代码编写过程中,需要信赖的相关模块名。

module.source 表示该模块的源代码,若还想增添新的.cc文件均可放入其中。

module_test 为该模块的测试相关文档,在用./create-module.py命令时自动创建

headers = bld(features=‘ns3header’) 是固定格式,用户不用改变。

headers.module = ’ temp ’

headers.source = … //用户对.h头文件进行设置,所需.h文件放入其中

环境编译 生成新模块

$cd ns-allinone-3.27/ns-3.27/ //回到ns主目录下

$./waf configure

$ ./waf build

$cd build/ns3/

$ls
可以看到,在\ns-3.27\build\ns3文件中生成了相应的模块:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值