【发布时间】:2016-08-30 21:50:26
【问题描述】:
我想在 Matlab 中使用 C 编码器。这将 m 代码转换为 C 代码。 我使用一个简单的函数来添加 5 个数字。 生成代码时,有很多 C 和 H 文件。 当然,您可以选择您需要的代码并将其导入您的代码中,但这不是本练习的重点,因为当 matlab 代码变得更加困难时,这将不再可能。
Matlab 提供一个 main.c 文件和一个 .mk 文件。
/* Include Files */
#include "rt_nonfinite.h"
#include "som.h"
#include "main.h"
#include "som_terminate.h"
#include "som_initialize.h"
//Declare all the functions
int main(int argc, const char * const argv[]){
(void)argc;
(void)argv;
float x1=10;
float x2=20;
float x3=30;
float x4=40;
float x5=50;
float result;
/* Initialize the application.
You do not need to do this more than one time. */
som_initialize();
main_som();
result=som(x1,x2,x3,x4,x5);
printf("%f", result);
som_terminate();
return 0;
}
当我在树莓派上运行它时
gcc -o test1 main.c
它给了我对所有函数的未定义引用... 任何想法出了什么问题?
【问题讨论】:
-
你的意图是什么?您希望在 pi 上构建代码并在那里运行,还是在 PC 上构建(交叉编译)代码然后在 pi 上运行?
-
是的。我正在从 adc 读取值,并希望使用在 Matlab 中生成的 C 代码对此数据执行 fft。但我想从一个简单的例子开始来理解工作流程
-
所以代码将在PC上生成,并在RPI上编译
-
好的,现在可以了!在 matlab 中,您可以选择“将所有函数放在 1 个文件中”。因此,您会从 matlab 中的原始 m 文件中获得 1 个包含所有功能的 c 文件。您可以只编写一个 main 并将所有 c 和头文件放在同一目录中,然后将它们包含在您的代码中。相当混乱,但它有效:)
标签: c matlab matlab-coder