2016-02-29 110 views
1

我已经成功安装并测试了Veins v4a2(包括RSU示例)。为了添加ITS-G5应用层到静脉,我试图用“动脉”不成功作为试图运行的例子的情况下,它引发等的错误:静脉OMNeT动脉安装++

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

我遵循的步骤是:

  1. 下载Vanetza(和所需的模块)
  2. 构建Vanetza没有错误
  3. 下载动脉
  4. 构建动脉喜欢与Vanetza没有任何错误
  5. 将“Artery”文件夹和文件(示例,src,tests,Makefile,configure ...)复制到Veins文件夹中,覆盖文件。
  6. 静脉的构建是正确完成的,但两者(动脉和静脉)的执行都会失败,并显示错误。

实际上,如果我尝试直接运行Artery代码中的Artery或RSU示例,而没有静脉代码(它看起来像动脉代码已经静脉静脉),则会引发同样的错误。

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

+0

是的..在我的情况下,我不得不重新编译Vanetza。如果我记得这是正确的,你可以在examples目录中用“./run --h classes”列出所有注册的类。 – Ventu

+0

这正是解决方案!重新编译vanetza开始动脉的例子。 – user1166776

回答

2

首先,您不需要将Artery复制到静脉并覆盖任何文件,因为您的假设是正确的:动脉的存储库包含完整的静脉源,因为动脉是建立在静脉上的附加组件。 错误信息实际上有点误导,但如果仔细查看完整的输出日志,您很可能会找到关于未定义的引用的一行,指出编译后的二进制文件中实际上丢失了哪个符号。这通常是由Vanetza在调试模式和动态模式下建立的,反之亦然。