在 Simulink 的自定义代码部分中包含库
Including libraries in the custom code section in Simulink
我正在尝试在 Simulink 的自定义代码库部分中包含一些库,例如 metis
。您知道 Simulink 排除了哪些类型的库吗?他们必须以 .a
、.o
、.dll
或 lib
结尾吗?
我可以使用 #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。
我正在尝试在 Simulink 的自定义代码库部分中包含一些库,例如 metis
。您知道 Simulink 排除了哪些类型的库吗?他们必须以 .a
、.o
、.dll
或 lib
结尾吗?
我可以使用 #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。