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

Posted

技术标签:

【中文标题】在 Simulink 的自定义代码部分中包含库【英文标题】:Including libraries in the custom code section in Simulink 【发布时间】:2015-01-29 07:49:26 【问题描述】:

我正在尝试在 Simulink 的自定义代码库部分中包含一些库,例如 metis。你知道 Simulink 排除了哪些类型的库吗?他们必须有结尾.a.o.dlllib? 我可以使用#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 的自定义代码部分中包含库的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CMakeLists 中包含库头文件

如何在Android主项目中包含库项目中使用的aar文件

离子框架 - Angular:在我的 html 代码中包含库不起作用

LayUi创建一个自定义通用模块

在 cmake c++ 项目中包含库的首选方法是啥?

Chrome 扩展程序 |如何在 CDN 的内容和后台脚本中包含库