poster
2019-12-10, 16:49
我正在使用嵌入式MATLAB从.m脚本生成C代码。但是,在生成之后,我剩下大约15个文件(其中大多数是源文件)。如果我想用C语言编写一个独立的main,如何链接到MATLAB生成的代码?有没有一种方法可以不编写我自己的Makefile?
所以我想出了如何使用matlab生成的代码生成静态库(.a)...我可以构建动态加载的库(.so)吗?
回答:
我不知道这是否是我的项目特有的,但是我发现我可以像通常包含其他任何东西一样,包含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 */ }
更多&回答... (https://stackoverflow.com/questions/1639139)
所以我想出了如何使用matlab生成的代码生成静态库(.a)...我可以构建动态加载的库(.so)吗?
回答:
我不知道这是否是我的项目特有的,但是我发现我可以像通常包含其他任何东西一样,包含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 */ }
更多&回答... (https://stackoverflow.com/questions/1639139)