【发布时间】:2014-01-31 08:13:44
【问题描述】:
我已将大型复杂 Simulink 模型的所有子系统编译成一系列 dll。除了一个之外,他们都在 Visual Studio 中工作。不工作的是唯一一个需要 simstruc.h 头文件的文件,当我尝试编译它们时收到大约 120 条错误消息。其中大部分位于 simstruc.h 中,但也包含在后续包含中,例如 sfcn_bridge.h。它们看起来都一样:
error C2143: syntax error : missing ';' before '*' c:\matlabr2011b_x86\rtw\c\src\sfcn_bridge.h (37)
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\matlabr2011b_x86\rtw\c\src\sfcn_bridge.h (37)
.
error C2143: syntax error : missing ';' before '*' c:\matlabr2011b_x86\simulink\include\simstruc.h (2135)
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\matlabr2011b_x86\simulink\include\simstruc.h (2135)
上例中的代码如下所示:
sfcn_bridge.h (37):
SS_SimMode *simModePtr;
simstruc.h (2135):
SparseHeader* slvrJacobianMatrix;
我以前可以编译包含 simstruc.h 的程序,但突然无法正常工作。谁能指出我正确的方向?
【问题讨论】:
-
头文件 simstruc_types.h 是否存在于包含文件夹中?
-
是的,simstruc_types.h 和 simstruc.h 在同一个 Matlab 文件夹中,并且该文件夹在 C/C++>General>Additional Include Directories 中列出。这才是正确的做法,对吧?
标签: c++ header compilation simulink