我正在尝试为制造商提供用 MS Visual C++ 编写的 SDK 的设备创建 Matlab 接口。我在我的 C 文件(包含 mexfunction)中包含了来自 SDK 的标头,其中包含如下枚举:
typedef enum {
GROUP_SYSTEM_COMMAND = 0,
GROUP_SLM_CURRENT, // 1
GROUP_SLM_HISTORY, // 2
GROUP_SLM_OVERALL, // 3
GROUP_STAT_HISTORY, // 4
GROUP_STAT_OVERALL, // 5
GROUP_OBA11, // 6
GROUP_OBA13, // 7
GROUP_DOSE_1, // 8
GROUP_DOSE_2, // 9
GROUP_EVENT_1, // 10
.......etc
在 matlab 中编译 C 文件以生成 mex 文件时,对于枚举的每个元素,我都会收到几个错误,如下所示:
错误 \LxT\useLxt.c: \LxT\LxT831.h: 713 重新声明先前在 \LxT\LxT831.h 713 声明的 `GROUP_DOSE_1'
错误 \LxT\useLxt.c: \LxT\LxT831.h: 714 重新声明先前在 \LxT\LxT831.h 714 中声明的 `GROUP_DOSE_2' ....
令人困惑的部分是重新声明在同一行。还有一点需要注意的是,这是 cpp 代码,而 matlab 使用的是 lcc c 编译器。任何提示/建议?