1

我已经成功安装并测试了 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. 使用 Vanetza 构建 Artery,没有错误
  5. 将“Artery”文件夹和文件(示例、src、tests、Makefile、configure...)复制到 Veins 文件夹,覆盖文件。
  6. 静脉的构建已正确完成,但两个(动脉和静脉)示例的执行都失败并显示错误。

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

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

4

1 回答 1

2

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

于 2016-03-11T18:14:31.220 回答