2021-08-31

NS3作为一个网络仿真软件,其构建选择了WAF而非CMake。原因是NS3专注于网络工程师的脚本仿真,不需要考虑复杂的继承和多平台兼容性问题。与库如OpenCV不同,OpenCV需要方便集成到各种应用程序中,因此采用可扩展的CMake。WAF的all-in-one特性使得NS3能更简单地运行,无需额外的构建系统修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

waf 构建与cmake构建的区别以及原因 --关于NS3使用waf构建而非cmake的一些想法

NS3被定义为一款"仿真软件". 首先, NS3的目的是仿真而非应用, 其次, 其次NS3是一个软件而不是库! 也就是说其代码就为用户界面.这种东西和NS3在开发之初就有质的不同

对于一个库来说, 例如opencv, 虽然都为CPP的一坨代码, .opencv是为了辅助应用而创立的代码集合, 其用户端是程序员,下端输出为应用程序,用户面向普通群众, 即:

Opencv -> programer -> app -> consumer

因此, opencv为了满足多样的需求, 考虑各方面因素. 为了考虑opencv与app的更好融合, 需要将opencv的部分融合进app的过程统一化且着重考虑, 因此opencv的构建方式需要可拓展, 所以opencv的工作组采取通过cmake构建工程, 能更好的方便继承

而NS3, 是一个仿真软件, 只不过没有可视化界面, 目的是为了模拟网络离散时间而创立, 如同matlab模拟控制系统一样, 其用户为网络工程师, 下端输出(产品)为脚本,再下端就没有了, 即:

NS3 -> network engineer -> script

NS3最终目的十分集中: 最大程度模拟现实中网络过程, 在这期间效率, 基于此二次构建出的程序架构等因素基本不需考虑, 因为基本没有继承的程序, 所以工作组采取了waf构建, 这种构建方式能以all-in-one的方式让NS3运行起来, 不需要修改工作目录以外的任何东西

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值