我正在使用Matlab Coder生成C代码,用作更大的C项目的子系统.代码生成命令的第一次try 是
codegen -config cfg -o ...
其中cfg
是coder.CodeConfig
对象的名称,...
表示后面是函数列表及其参数规范.此命令的问题在于它不会自动生成依赖项tmwtypes.h
.我假设如果使用Matlab来编译代码,这不是问题,但我将生成的文件复制到主项目并直接使用gcc
构建,所以我需要包含该依赖项.
事实证明,package
选项可以有所帮助.如果我产生与
codegen -config cfg -package pkg -o ...
然后生成包含所生成的代码的压缩文件pkg.zip
,其中包括所包括的依赖性tmwtypes.h
.我可以在主项目中解压并编译它;它有效!显然,packNGo
函数可以用于获得类似的结果;事实上,codegen
似乎很可能使用packNGo
来实现package
选项.
但这似乎太愚蠢了!我不应该仅仅为了获取正确的依赖项而生成压缩文件.一定有更好的方法,对吧?那么生成代码并确保包含tmwtypes.h
的正确方法是什么?我想我可以将其复制到文件夹中,作为脚本的一部分,但默认位置tmwtypes.h
在不同的机器上会有所不同,所以这有自己的一系列问题.Matlab显然有足够的能力检测和包括依赖性,因为在使用package
选项时会包括它.