我正在使用嵌入式MATLAB从.m脚本生成C代码。然而,在这一代之后我留下了大约15个文件(大多数是源文件)。如果我想在C中编写一个独立的main,我该如何链接到MATLAB生成的代码?有没有办法在不编写自己的Makefile的情况下执行此操作?
所以我想出了如何使用matlab生成的代码生成静态库(.a)...我可以构建动态加载的库(.so)吗?
答案 0 :(得分:2)
我不知道这对我的项目是否特别,但我发现我可以像通常包含其他内容一样包含Matlab生成的文件。
我将生成的matlab源文件(.c和.h)直接复制到我的项目中,然后我必须将它们专门添加到我的项目中。 (我想知道这是否与我使用的IDE有关)。
然后,在您创建的main.c中,只需添加#include“yourGeneratedFile.h”行。现在,在main.c中,您应该可以使用Matlab创建的任何函数。
例如,在一个例子中:
在main.c中,包含头文件并使用您需要的功能
#include "SPIUARTDemo30f.h"
//further down in the file
SPIUARTDemo30f_step(); //using the function I asked Matlab to generate
SPIUARTDemo30f.h和SPIUARTDemo30f.c是Matlab生成的文件:
在.h中你会看到extern void SPIUARTDemo30f_step(void);
并且,如果你看一下.c,你会发现:
void SPIUARTDemo30f_step(void)
{
/* lots of code */
}