在 .msg 文件中包含 c 文件(静脉)

Including c files in .msg files (Veins)

我正在尝试在 Veins 4.4 中实现 BSM。为了达到这个目的,我想导入我的 libasn,它们是 WaveShortMessage.msg 中的 C 文件(.c 和 .h),以便填充 BSM。

我尝试按如下方式导入它们:

  1. #include "veins/asn/BasicSafetyMessage.h"

  2. #include <veins/asn/BasicSafetyMessage.h>

3.

extern "C" {
   #include "veins/asn/BasicSafetyMessage.h"
};

4.

    #ifdef __cplusplus
    extern "C" {
    #endif
    #include "veins/asn/BasicSafetyMessage.h"
    #ifdef __cplusplus
    }
    #endif

但它不起作用。它总是 returns 一个错误。

你能建议正确的方法吗?非常感谢

OMNeT++ 中的消息定义中使用 C 或 C++ 代码在 OMNeT++ Simulation Manual, chapter 6.5 中有详细描述。
您应该使用 cplusplus 关键字,BasicSafetyMessage.h:

中的 C 代码示例
cplusplus {{
extern "C" {
#include "veins/asn/BasicSafetyMessage.h"
};
}}