Makefile 带静脉OMNeT和x2B的动脉安装+;

Makefile 带静脉OMNeT和x2B的动脉安装+;,makefile,omnet++,veins,Makefile,Omnet++,Veins,我已经成功地安装并测试了VelseV4A2(包括RSUexample)。为了将ITS-G5应用层添加到Velses中,我尝试使用“动脉”失败,因为在尝试运行示例时,它会抛出如下错误: 网络连接期间模块(cModule)RSUEXampleSecenario(id=1)中出错 设置:未找到类“Velses::ObstacleControl” 可能它的代码没有链接,或者该类没有注册到>Register\u class(),或者在模块和通道的情况下,没有注册到>Define\u Module()/De

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

网络连接期间模块(cModule)RSUEXampleSecenario(id=1)中出错 设置:未找到类“Velses::ObstacleControl” 可能它的代码没有链接,或者该类没有注册到>
Register\u class()
,或者在模块和通道的情况下,没有注册到>
Define\u Module()
/
Define\u Channel()

我遵循的步骤是:

  • 下载Vanetza(以及所需的模块)
  • 无错误地构建Vanetza
  • 下载动脉
  • 使用Vanetza创建一个无错误的
  • 将“动脉”文件夹和文件(示例、src、测试、Makefile、configure…)复制到Velse文件夹,覆盖文件
  • 静脉的构建是正确的,但是(动脉和静脉)示例的执行都以显示的错误失败
  • 事实上,如果我试图直接从动脉代码运行动脉或RSU示例,而不使用静脉代码(似乎动脉代码已经控制了静脉),则会出现相同的错误


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

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

    Yes。。就我而言,我不得不重新编译Vanetza。如果我没记错的话,您可以在examples目录中列出所有注册的类,其中包含“/run--h classes”。这正是解决方案!!重新编译vanetza是一个开始的示例。