使用Matlab C++编译器将C++代码转换为Matlab



我正在尝试在Matlab中使用MinGW-w64编译器。我安装了它,Matlab可以识别编译器。我的问题有两个:

1( 我无法让它把所有的.c代码编译成一个头。我输入了

mex -output HTKToolsFolder *.c
Building with 'MinGW64 Compiler (C)'.

得到

Error using mex
C:UsersusernameDocumentsMATLABMatlabHTKhtkHTKToolsHBuild.c:39:46:    fatal error: HShell.h: No such
file or directory
#include "HShell.h" /* HMM ToolKit Modules */
^
compilation terminated.

我不确定.h的扩展名是什么。该文件位于另一个文件夹中,但如果我告诉Matlab编译.h文件,它就无法识别文件扩展名

mex -output hfilescompiled *.h
Error using mex
Unknown file extension '.h'.

如果有帮助的话,一些.c文件会调用HShell.h

第二个问题是,一旦问题#1得到回答,我可以将其应用于包含许多C++代码文件夹的目录吗?还是必须对每个文件夹使用mex命令?

我看过Matlab教程:https://www.mathworks.com/solutions/matlab-and-c.html我还阅读了mex和loadlibrary的Matlab帮助文件。

任何建议都将不胜感激,因为这是我第一次将C++和Matlab混合在一起。提前感谢!

您想要这样做:

mex HBuild.c -IC:PathToHFiles

其中CCD_ 1是包含CCD_ 2的任何目录。

这将创建一个名为HBuild的MEX文件(假设HBuild.c包含mexFunction函数,并且不存在其他依赖项(。

如果执行mex *.c,则该目录中的所有C源文件将合并为一个MEX文件。我怀疑这是否是你想要的。您需要为要构建的每个MEX文件调用mex。每个MEX文件都将成为MATLAB中可用的函数。

相关内容

  • 没有找到相关文章

最新更新