【问题标题】:opp_run error on omnetpp IDEomn​​etpp IDE 上的 opp_run 错误
【发布时间】:2018-05-23 16:44:19
【问题描述】:

我目前正在做一个静脉项目,直到今天一切都很好。 我需要在“venes/src/veins/modules”目录中添加一个新模块,所以我只是创建了一个新文件夹并将一些 .ned 文件和相关的头文件/源文件放在那里。这样做后我遇到了一些错误,但没什么特别的(我可能做错了什么,编译器不喜欢它)。然后我决定删除该文件夹,然后再试一次。

这样做后,我重新运行了完全相同的模拟,并且 omnet/IDE 开始显示此内容,但无法启动:

<!> Error: Cannot load library '../../src//libveins.so': ../../src//libveins.so: undefined symbol: _ZN8Flooding6finishEv

End.

Simulation terminated with exit code: 1

我尝试了全新的清洁并重建了整个静脉项目,但这并没有帮助。 我用谷歌搜索了这个错误,但找不到与我的情况类似的东西。 提前感谢您的帮助。

最好的问候。

【问题讨论】:

  • 尝试手动删除 libveins.so 并重建项目。
  • 当你清理本地 -> 清理项目 -> 重建它会自动删除 libveins.so 文件,所以我怀疑这是问题,但我会尝试。
  • 您是否还有一些代码指向您创建的符号?我不认为_ZN8Flooding6finishEv 符号是 VEINS 的一部分。如果一切都失败了,请尝试克隆 VEINS 的新副本并编译它——如果可行,git bisect 在项目的提交历史记录中找到引入错误的提交。
  • c++filt _ZN8Flooding6finishEv 显示缺少的符号是 Flooding::finish()。您似乎对这种方法有减速,但缺少相应的实现。我假设您的模块被称为 Flooding 并且您在重新开始时没有将其全部删除。
  • 哦,我自己发现了问题所在,但正如你所说。我只是无法弄清楚那个未定义的符号是什么。在 Windows 上运行相同的配置表明它确实没有实现Flooding::finish()(这可能是因为它在 Windows 上自动解构)。 opp_run 而不是编译器告诉我们这很奇怪。不管怎样,现在一切都好。感谢您的帮助。

标签: omnet++ veins


【解决方案1】:

c++filt _ZN8Flooding6finishEv 显示缺少的符号是 泛滥::finish()。看来你有这个减速 方法,但缺少相应的实现。我假设你的 模块被称为 Flooding 并且你没有删除所有它时 重新开始。

朱利安·海诺夫斯基

在 Windows 上运行相同的配置表明它确实是 Flooding::finish() 未实现(这可能是因为它在 Windows 上自动解构)。我刚刚删除了声明,解决了我的小疏忽。

【讨论】:

  • 感谢引用:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
相关资源
最近更新 更多