【问题标题】:Artery installation with Veins OMNeT++使用 Veins OMNeT++ 安装动脉
【发布时间】:2016-03-12 02:14:31
【问题描述】:

我已经成功安装并测试了 Veins v4a2(包括 RSUexample)。为了将 ITS-G5 应用层添加到 Veins,我尝试使用“Artery”失败,因为在尝试运行示例时,它会抛出如下错误:

网络期间模块 (cModule) RSUExampleScenario (id=1) 出错 设置:找不到类“Veins::ObstacleControl” 也许它的代码没有链接,或者类没有注册到 >Register_Class(),或者在模块和通道的情况下,使用 >Define_Module()/Define_Channel()。

我遵循的步骤是:

  1. 下载 Vanetza(以及所需的模块)
  2. 无错误地构建 Vanetza
  3. 下载动脉
  4. 构建 Artery 与 Vanetza 一样,没有错误
  5. 将“Artery”文件夹和文件(示例、src、tests、Makefile、configure...)复制到 Veins 文件夹,覆盖文件。
  6. Veins 的构建已正确完成,但两个(动脉和静脉)示例的执行都失败并显示错误。

实际上,如果我尝试直接从 Artery 代码运行 Artery 或 RSU 示例,而不使用 Veins 代码(似乎 Artery 代码已经包含 Veins),则会引发相同的错误。

以前有人遇到过这个问题吗?

【问题讨论】:

  • 是的.. 就我而言,我必须重新编译 Vanetza。如果我没记错的话,您可以在示例目录中使用“./run --h classes”列出所有已注册的类。
  • 这正是解决方案!重新编译vanetza 一个启动动脉的例子。

标签: makefile omnet++ veins


【解决方案1】:

首先,您不需要将 Artery 复制到 Veins 并覆盖任何文件,因为您的假设是正确的:Artery 的存储库包含完整的 Veins 源代码,因为 Artery 是基于 Veins 构建的附加组件。 错误消息实际上有点误导,但如果您仔细查看完整的输出日志,您很可能会发现一行关于未定义引用的行,说明编译的二进制文件中实际缺少哪个符号。这通常是由于在调试模式下构建 Vanetza 而在发布模式下构建 Artery 造成的,反之亦然。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多