如何包括所有必需的头在代码生成的MATLAB编码器?

6次浏览(过去30天)
我正在用Coder从MATLAB生成c++源代码。
我的一些函数需要cs.h: # include“cs.h” 但是MATLAB不会自动在生成的文件中包含“cs.h”头文件。我可以从${MATLAB_ROOT_DIR}中找到该文件 /工具箱/ eml / externalDependency / CXSparse /包括 ,但我不想手动搜索该文件并包含它。我稍后手动编译生成的c++,目前,我必须手动找到“cs.h”文件并将其配置为构建。我不希望每次获得新的依赖项时都这样做。
我想在生成的codegen文件夹中自动地拥有生成的c++代码所需的所有标头和源。这可能吗?
2的评论
嗯Gustavsen
嗯Gustavsen 2022年11月9日
我们在MATLAB R2022b update 1和MATLAB Coder 5.5上也有同样的问题。文件正确生成,但是CXSparse和CXSparseHelper中的文件没有复制到输出中。解决办法是手动拷贝这些文件夹中的文件。

登录评论。

答案(1)

瑞安·利文斯顿
瑞安·利文斯顿 2022年11月9日
编辑:瑞安·利文斯顿 2022年11月9日
当我运行 codegen 在MATLAB R2022b中的MATLAB Coder命令中,我看到所有CXSparse文件都出现在下面的codegen文件夹中 CXSparse
>>!树codegen / lib / f / CXSparse /
codegen / lib / f / CXSparse /
├──CXSparseSupport
│├──coder_cs.h
│├──makeCXSparseMatrix.c
│├──makeCXSparseMatrix.h
│├──solve_from_lu.c
│├──solve_from_lu.h
│├──solve_from_qr.c
│├──solve_from_qr.h
│├──unpackCXStruct.c
│└──unpackCXStruct.h
├──包括
│└──cs.h
├──许可证
│├──更新日志
│├──lesser.txt
│└──License.txt
├──
│├──cs_ci_bundle.c
│└──cs_ri_bundle.c
└──SuiteSparse_config
├──Makefile
├──固定
├──SuiteSparse_config.c
├──SuiteSparse_config.h
└──SuiteSparse_config.mk
5个目录,20个文件
通过压缩文件夹并在另一台机器上构建生成的代码,我验证了该列表是完整的。如果您看到其他行为与MATLAB Coder,请您分享复制步骤与 技术支持 这样我们就可以调查了?
作为 丹尼斯提到 ,一般来说,打包生成的代码和所有依赖项的最佳实践是使用以下方法之一:
  • MATLAB函数packNGopackNGo(' /一些/文件夹/ codegen / lib / foo”)
  • codegen的package参数:codegen foo。m -package fooppackage .zip
  • 包按钮在MATLAB编码器应用程序和报告
这些将为您提供一个包含所有可以重新定位的依赖项的ZIP文件。

类别

了解更多仿真软件编码器帮助中心而且文件交换

2022世界杯八强谁会赢?


释放

R2022a

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map