在 Simulink 的自定义代码部分中包含库

Including libraries in the custom code section in Simulink

我正在尝试在 Simulink 的自定义代码库部分中包含一些库,例如 metis。您知道 Simulink 排除了哪些类型的库吗?他们必须以 .a.o.dlllib 结尾吗?
我可以使用 #include <metis.h> 将它们包含到我的自定义 C 代码中吗?

库格式应与您要在其上编译生成的代码的体系结构相匹配。所以 .a.so 代表 GNU/Linux,.lib 代表 Windows(你通常 link 反对 .lib 文件而不是 .dll),并且通常在 Mac 上 .dylib。您也可以在 object 文件中 link(即 .o, .obj),但通常软件包会构建某种类型的库供您使用。

如果您正在使用 metis header 中定义的任何函数、类型等,那么这些 header 需要包含在生成的代码。

您可以在设置中添加#include "header_name.h"

"Configuration Parameters->Simulation Target->Custom Code->Header File"

和:

"Configuration Parameters->Code Generation->Custom Code->Header File"

其中 header_name.h 替换为所需的 header 文件名。

因为这个问题被标记为 MATLAB Coder 你也可以在你的 MATLAB 代码中使用 coder.cinclude('header_name.h'); 在 C 代码中生成一个 #include "header_name.h"

您可能还需要增加上述 Custom Code 窗格中的 Include directories 设置,以允许编译器找到 headers。