簡體   English   中英

使用Matlab C ++編譯器將C ++代碼轉換為Matlab

[英]Using Matlab C++ compiler to convert C++ code into Matlab

我正在嘗試在Matlab中使用MinGW-w64編譯器。 我已經安裝了它,並且Matlab可以識別編譯器。 我的問題是2倍:

1)我無法將所有.c代碼編譯為標頭。 我打過

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

並得到

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文件,它將無法識別文件擴展名

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,並且我還閱讀了Matlab幫助文件(關於mex和loadlibrary)。

非常感謝任何建議,因為這是我第一次混合使用C ++和Matlab。 提前致謝!

您想這樣做:

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中可用的函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM