C++代码中使用的MATLAB代码
C++ Code used in MATLAB code
我有一个MATLAB代码,它使用C++代码。
当我尝试使用MATLAB编码器构建它时,我得到了一个错误
未定义的函数或变量"nameOfC++文件"。
在构建之前如何包含/定义它?
PS:matlab代码在没有预先定义这个C++文件的情况下工作。
编辑
它是如何被称为的
r = mlist(d, p);
我有两个文件,mlist.cpp和mlist.dll
开始工作的一些建议:
-
配置MATLAB编码器生成C++代码,以确保一致的编译和链接:
cfg = coder.config('lib'); cfg.TargetLang = 'C++'; codegen -config cfg ...
-
包括所需的标头。在您的MATLAB代码中用于代码生成:
function y = example(x) %#codegen coder.cinclude('a_header.h'); coder.cinclude('<a_system_header>');
-
如有必要,将include路径添加到配置对象
cfg
:cfg.CustomInclude = '/directory/with/headers /other/directory';
-
使用
coder.ceval
:调用外部函数function y = example(x) %#codegen coder.cinclude('a_header.h'); coder.cinclude('<a_system_header>'); % Assume y is a double scalar. Change this to match the return type % of someExternalFunction y = 0; y = coder.ceval('someExternalFunction',x);
-
将任何必要的C++源文件(
.cpp
)、对象文件(.o, .obj
)或库(.a, .so, .lib, .dylib
等)传递给codegen命令:codegen -config cfg matlab_function_name source.cpp library.so ...
关于外部代码集成的文档展示了封装外部代码依赖关系的其他技术。使用这些可以指定传递给MATLAB编码器的MATLAB代码中所需的库、外部源代码、编译器标志和其他选项。
这意味着您的代码变得自包含,因此不需要修改配置对象,并且对codegen
的调用不需要包括源文件、对象文件和库。
相关文章:
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 为什么这段代码(在 Matlab 的 MEX 文件中使用 OpenMP)给出不同的结果?
- 这个 matlab 代码的C++等价物是什么(fread matlab vs fread C/C++)?
- 如何将 MATLAB 图像处理库内置函数转换为 MATLAB 编码器代码生成不支持的 C++?
- 在CMD中运行MATLAB代码,然后等待完成
- 使用 MATLAB 编码器将代码从注册估算器应用程序导出到C++
- 使用带有 MEX 包装器的帮助程序 C 文件从 MATLAB 2016 调用C++代码时出现问题
- 可以在没有MATLAB安装的情况下执行C 到MATLAB代码接口
- 想要将此 Matlab 代码转换为 OpenCV 代码
- 如何使用C 代码调用MATLAB自定义函数
- 来自MATLAB的代码优化直方图C
- 使用MATLAB通过MEX运行OPENCV代码在VisualStudio上可以使用
- 当未选择 /CLR时,编译的MATLAB代码崩溃
- 使用 sge 集群在 Matlab 下运行C++代码
- Matlab 编码器错误 "for loop index expressions.." 如何修改代码?
- 如何使用'Build Model'函数从 matlab simulink 块生成 c/c++ 代码?
- 在C 或MATLAB中用于图像的CRF实现的代码
- 使用EIGEN库链接MATLAB和C 代码
- C和MATLAB:为什么MATLAB中的一行成为MATLAB编码器生成的C 代码中的许多行
- 将 Matlab 代码转换为静态C++库