我正在一个VirtualBox虚拟机中尝试在Fedora22上构建ns-3.24.1。我在跑:
./waf configure--启用示例--启用测试--使用openflow=/path/to/openflow--使用pybindgen=/path/to/pybindgen
/waf构建
我想使用OpenFlow,所以在运行上面的configure命令之前,我根据these instructions下载并配置/构建了OFSID。配置步骤的输出显示OpenFlow为“enabled”。
ns-3.24.1构建将正常进行,直到达到以下步骤并弹出后续错误:
[2291/2493] Linking build/src/openflow/examples/ns3.24.1-openflow-switch-debug
./libns3.24.1-openflow-debug.so: undefined reference to `update_checksums'
collect2: error: ld returned 1 exit status
...
也就是说,它似乎正确地构建了所有内容,但是在链接步骤上出现了错误。
显然update_checksums在[…]/ns-3.24.1/src/openflow/model/openflow interface.h中;由于某种原因,链接步骤不知道在这里查找openflow interface.h。
是什么引起的?我能试着修复它吗?FWIW我已经多次重新下载了ns-3和OFSID源,但都没有结果。
最佳答案
首先也是最重要的是,除非您想使用OpenFlow和/或Python进行开发,否则不需要安装OpenFlow/Python。教程中对此进行了解释:
关于未构建模块的部分:
未构建的模块(有关说明,请参阅ns-3教程):
点击openflow可视化工具
这就意味着
某些依赖于外部库的ns-3模块可能无法
已经构建,或者配置特别要求
建造它们。这并不意味着模拟器没有构建
成功或将为模块提供错误的结果
列为在建。
在“configure”之后,您看到OpenFlow被启用了吗?
在-----可选NS-3功能摘要下:您应该看到:
“NS-3 OpenFlow集成:已启用”