【问题标题】:Compilation error when updating to Veins 5更新到 Veins 5 时出现编译错误
【发布时间】:2019-01-28 06:36:46
【问题描述】:

我已经安装了带有 Omnet++ 5.4.1 的 Veins 5。我按照here的建议将我的静脉 4 项目升级到了静脉 5@

但是,我面临一个新问题,即编译器看不到 Veins 库。我得到的错误如下: undefined reference to Veins::DemoBaseApplLayer::initialize(int)

我还将静脉作为参考项目包含在内,并将 Makemake 选项中的包含路径更新为

"C:\veins5\veins-veins-5a1\src"

我是否缺少任何进一步的配置?

我在 Windows 操作系统下运行 Veins。

【问题讨论】:

  • 您是否从构建文件夹中删除了旧的编译工件(例如,使用 Project > Clean... 并在 OMNeT++ IDE 中选择 Clean all Projects)?此外,您在构建 Veins 或构建模拟时是否遇到错误?如果是后者,您可以尝试运行make V=1 而不是make 来编译您的项目。这将允许您查看正在链接的库(最后一行以 clang++g++ 开头)
  • Veins 编译成功,附带的示例模拟也运行良好。我使用 make V=1 ,似乎这些库是链接的。它表明 Veins 库是链接的。部分输出是:clang++ -shared -o ... /veins5/veins-veins-5a1/src -lveins -Wl,- rpath,C:/veins5/veins-veins-5a1/src ...

标签: omnet++ veins


【解决方案1】:

Veins 5 alpha 1 的 DemoBaseApplLayer 不准备用作其他模拟应用层的基类。这可以通过更改其源代码来纠正:

src/veins/modules/application/ieee80211p/DemoBaseApplLayer.h,第 56 行,更改

class DemoBaseApplLayer : public BaseApplLayer {

class VEINS_API DemoBaseApplLayer : public BaseApplLayer {

【讨论】:

    猜你喜欢
    • 2022-01-26
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 2023-04-11
    • 2012-07-03
    相关资源
    最近更新 更多