我正在学习R并通过名为RInside的这个包来提供c ++类来调用嵌入式R解释器。在根据this blogpost配置并在Omnet ++ eclipse IDE中使用提供的makefile后,我能够运行一些示例。我们怎样才能将它与静脉相结合(静脉已经在顶级目录和src目录中有自动生成的makefile)? Rinside需要GCC工具链,我认为这是OMNeT ++中的默认工具。
从目前为止我所学到的知识,可以选择:
到目前为止,是否有人尝试将其用于基于omnet ++ / veins的项目?有谁知道它是否值得尝试?欢迎任何其他建议。
我使用的是Ubuntu 16.04 LTS 64位。
答案 0 :(得分:2)
你真的想在OMNeT ++中使用R,还是想进行结果/数据分析?
您是否可以提供一些有关您尝试做什么/为什么要在OMNeT ++中使用R而不是在模拟完成后进行后处理步骤的信息?一般来说,我建议您单独使用模拟进行后处理,使用OMNeT ++中的统计信息收集库在结果中生成相关数据,然后使用R进行处理。您可以找到一些与{{3}一起使用的示例},一个基于VEINS的CACC应用程序模拟器,位于Plexe。我个人更喜欢使用python进行后期处理,但是如果你已经熟悉了R,那么我建议你去看看。
如果你真的想这样做,我建议在你的问题中采用第二种方法,即简单地动态链接到RInside库作为系统库,并将它们指定为依赖。这基本上是让事情发挥作用的最简单方法。
但是,如果由于某种原因您想要明确地链接库,您应该知道VEINS的构建过程依赖于分发中包含的this repository。它的工作方式与普通的C ++程序不同,OMNeT ++模拟应该使用OMNeT ++ - 提供的opp_makemake
工具构建:这正是VEINS的配置脚本所做的。如果要在构建过程中包含其他库路径,最简单的方法是使用./configure --include PATH/TO/RINSIDE/HEADERS
创建makefile。有关更多详细信息,请参阅脚本源代码