首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Matlab C++编译器实现C++代码到Matlab的转换

利用Matlab C++编译器实现C++代码到Matlab的转换
EN

Stack Overflow用户
提问于 2018-11-09 05:25:13
回答 1查看 141关注 0票数 0

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

1)我不能让它将所有的.c代码编译成一个头。我打字

代码语言:javascript
复制
 mex -output HTKToolsFolder *.c
 Building with 'MinGW64 Compiler (C)'.

并得到了

代码语言:javascript
复制
Error using mex
C:\Users\username\Documents\MATLAB\MatlabHTK\htk\HTKTools\HBuild.c:39:46:    fatal error: HShell.h: No such
file or directory
 #include "HShell.h" /* HMM ToolKit Modules */
                                          ^
compilation terminated.

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

代码语言:javascript
复制
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。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-11-09 06:16:56

您想要这样做:

代码语言:javascript
复制
mex HBuild.c -IC:\Path\To\H\Files

其中,C:\Path\To\H\Files是包含HShell.h的任何目录。

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53216367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档