我有一个MATLAB函数,它有信号处理和机器学习,我想在另一个操作系统上测试它,比如linux。所以我使用codegen为该函数生成C代码。当我在命令行上运行它(predictActivityFromSignalBuffer)时,这就是我得到的:
MacBook-Pro-2:predictActivityFromSignalBuffer kareem$ gcc predictActivityFromSignalBuffer.c
Undefined symbols for architecture x86_64:
"_featuresFromBuffer", referenced from:
_predictActivityFromSignalBuffer in predictActivityFromSignalBuffer-1a1886.o
"_main", referenced from:
implicit entry/start for main executable
"_mynn", referenced from:
_predictActivityFromSignalBuffer in predictActivityFromSignalBuffer-1a1886.o
"_rtIsNaN", referenced from:
_predictActivityFromSignalBuffer in predictActivityFromSignalBuffer-1a1886.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
这个错误到底告诉我什么?我不知道如何调试这个或从哪里开始/看。
答案 0 :(得分:2)
你真的打过电话吗
$ gcc predictActivityFromSignalBuffer.c
没有任何其他依赖关系?通常会出现很多其他必须链接代码生成的文件。
我不知道您为生成.c文件所做的工作。我建议输入
来使用编码器向导coder
在Matlab命令窗口中。这将指导您完成整个代码生成过程,并提供大量支持和测试可能性。您还可以选择将函数编译为可立即使用的DLL库或可执行文件。看看吧。