在 Simulink 的自定义代码部分中包含库
Posted
技术标签:
【中文标题】在 Simulink 的自定义代码部分中包含库【英文标题】:Including libraries in the custom code section in Simulink 【发布时间】:2015-01-29 07:49:26 【问题描述】:我正在尝试在 Simulink 的自定义代码库部分中包含一些库,例如 metis
。你知道 Simulink 排除了哪些类型的库吗?他们必须有结尾.a
、.o
、.dll
或lib
?
我可以使用#include <metis.h>
将它们包含到我的自定义 c 代码中吗?
【问题讨论】:
【参考方案1】:库格式应与您要在其上编译生成的代码的架构相匹配。所以.a
或.so
用于GNU/Linux,.lib
用于Windows(您通常链接到.lib
文件而不是.dll
),通常在Mac 上是.dylib
。您还可以链接目标文件(即.o, .obj
),但通常软件包会构建某种类型的库供您使用。
如果您使用任何metis
标头中定义的任何函数、类型等,则需要将这些标头包含在生成的代码中。
您可以在设置中添加#include "header_name.h"
:
"Configuration Parameters->Simulation Target->Custom Code->Header File"
和:
"Configuration Parameters->Code Generation->Custom Code->Header File"
其中header_name.h
被替换为所需的头文件名。
由于此问题被标记为 MATLAB Coder
,因此您还可以在 MATLAB 代码中使用 coder.cinclude('header_name.h');
在 C 代码中生成 #include "header_name.h"
。
您可能还需要在上述Custom Code
窗格上增加Include directories
设置,以允许编译器定位标头。
【讨论】:
以上是关于在 Simulink 的自定义代码部分中包含库的主要内容,如果未能解决你的问题,请参考以下文章