[英]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.