生成C代码时自动复制/生成`tmwtypes.h`依赖

问题描述 投票:0回答:1

我正在使用 Matlab Coder 生成 C 代码,以用作大型 C 项目的子系统。代码生成命令的第一次尝试是

codegen -config cfg -o ...

其中

cfg
coder.CodeConfig
对象的名称,
...
表示后面的函数列表及其参数规范。该命令的问题在于它不会自动生成依赖项
tmwtypes.h
。我认为如果使用 Matlab 编译代码,这不是问题,但我将生成的文件复制到主项目并直接使用
gcc
进行构建,因此我需要包含该依赖项。

事实证明

package
选项可以提供帮助。如果我用

生成
codegen -config cfg -package pkg -o ...

然后生成一个 zip 文件

pkg.zip
,其中包含生成的代码以及依赖项
tmwtypes.h
。我可以将其解压到主项目中并编译;有用!显然,使用
packNGo
函数可以得到类似的结果;事实上,
codegen
似乎很可能使用
packNGo
来实现
package
选项。

但这看起来很愚蠢!我不需要生成 zip 文件只是为了获得正确的依赖项。一定有更好的方法,对吧?那么生成代码并确保包含

tmwtypes.h
的正确方法是什么?我想我可以将其作为脚本的一部分复制到文件夹中,但是
tmwtypes.h
的默认位置在不同的计算机上会有所不同,因此有其自己的一系列问题。 Matlab 显然有足够的能力来检测和包含依赖性,因为它是在使用
package
选项时包含的。

matlab matlab-deployment matlab-coder
1个回答
0
投票

根据this,我似乎可以使用

tmwtypes.h
命令获取到
matlabroot
的平台相关路径:

matlabroot + "/extern/include/tmwtypes.h"

我可以使用它将

tmwtypes.h
复制到主项目中,作为代码生成和编译脚本的一部分。

如果有的话,我仍然希望获得有关更好解决方案的信息。

© www.soinside.com 2019 - 2024. All rights reserved.