Using Matlab C++ compiler to convert C++ code into Matlab
up vote
0
down vote
favorite
I am trying to use the MinGW-w64 Compiler in Matlab. I have it installed and Matlab recognizes the compiler. My question is 2-fold:
1) I cannot get it to compile all the .c code into a header. I typed
mex -output HTKToolsFolder *.c
Building with 'MinGW64 Compiler (C)'.
And got
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.
I'm not sure what the .h extension is. That file is located in another folder but if I tell Matlab to compile .h files it doesn't recognize the file extension
mex -output hfilescompiled *.h
Error using mex
Unknown file extension '.h'.
If it helps, HShell.h is called by some of the .c files
The second question is, once question #1 is answered, can I apply this to a directory with many folders of C++ code? Or do I have to use the mex command for every single folder?
I've watched the Matlab tutorial: https://www.mathworks.com/solutions/matlab-and-c.html and I've also read the Matlab help files for mex and loadlibrary.
Any advice is greatly appreciated as this is the first time I've mixed C++ and Matlab. Thanks in advance!
c++ matlab compiler-errors mex
add a comment |
up vote
0
down vote
favorite
I am trying to use the MinGW-w64 Compiler in Matlab. I have it installed and Matlab recognizes the compiler. My question is 2-fold:
1) I cannot get it to compile all the .c code into a header. I typed
mex -output HTKToolsFolder *.c
Building with 'MinGW64 Compiler (C)'.
And got
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.
I'm not sure what the .h extension is. That file is located in another folder but if I tell Matlab to compile .h files it doesn't recognize the file extension
mex -output hfilescompiled *.h
Error using mex
Unknown file extension '.h'.
If it helps, HShell.h is called by some of the .c files
The second question is, once question #1 is answered, can I apply this to a directory with many folders of C++ code? Or do I have to use the mex command for every single folder?
I've watched the Matlab tutorial: https://www.mathworks.com/solutions/matlab-and-c.html and I've also read the Matlab help files for mex and loadlibrary.
Any advice is greatly appreciated as this is the first time I've mixed C++ and Matlab. Thanks in advance!
c++ matlab compiler-errors mex
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am trying to use the MinGW-w64 Compiler in Matlab. I have it installed and Matlab recognizes the compiler. My question is 2-fold:
1) I cannot get it to compile all the .c code into a header. I typed
mex -output HTKToolsFolder *.c
Building with 'MinGW64 Compiler (C)'.
And got
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.
I'm not sure what the .h extension is. That file is located in another folder but if I tell Matlab to compile .h files it doesn't recognize the file extension
mex -output hfilescompiled *.h
Error using mex
Unknown file extension '.h'.
If it helps, HShell.h is called by some of the .c files
The second question is, once question #1 is answered, can I apply this to a directory with many folders of C++ code? Or do I have to use the mex command for every single folder?
I've watched the Matlab tutorial: https://www.mathworks.com/solutions/matlab-and-c.html and I've also read the Matlab help files for mex and loadlibrary.
Any advice is greatly appreciated as this is the first time I've mixed C++ and Matlab. Thanks in advance!
c++ matlab compiler-errors mex
I am trying to use the MinGW-w64 Compiler in Matlab. I have it installed and Matlab recognizes the compiler. My question is 2-fold:
1) I cannot get it to compile all the .c code into a header. I typed
mex -output HTKToolsFolder *.c
Building with 'MinGW64 Compiler (C)'.
And got
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.
I'm not sure what the .h extension is. That file is located in another folder but if I tell Matlab to compile .h files it doesn't recognize the file extension
mex -output hfilescompiled *.h
Error using mex
Unknown file extension '.h'.
If it helps, HShell.h is called by some of the .c files
The second question is, once question #1 is answered, can I apply this to a directory with many folders of C++ code? Or do I have to use the mex command for every single folder?
I've watched the Matlab tutorial: https://www.mathworks.com/solutions/matlab-and-c.html and I've also read the Matlab help files for mex and loadlibrary.
Any advice is greatly appreciated as this is the first time I've mixed C++ and Matlab. Thanks in advance!
c++ matlab compiler-errors mex
c++ matlab compiler-errors mex
edited Nov 8 at 22:12
Cris Luengo
16.9k51847
16.9k51847
asked Nov 8 at 21:25
A. DeAngelis
1
1
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
2
down vote
You want to do this:
mex HBuild.c -IC:PathToHFiles
where C:PathToHFiles
is whatever the directory is that contains HShell.h
.
This will create a MEX-file called HBuild
(assuming that HBuild.c
contains a mexFunction
function, and no other dependencies exist).
If you do mex *.c
, then all C source files in that directory will be combined into a single MEX-file. I doubt that this is what you want. You need to call mex
for each of the MEX-files you want to build. Each MEX-file will become a function available within MATLAB.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
You want to do this:
mex HBuild.c -IC:PathToHFiles
where C:PathToHFiles
is whatever the directory is that contains HShell.h
.
This will create a MEX-file called HBuild
(assuming that HBuild.c
contains a mexFunction
function, and no other dependencies exist).
If you do mex *.c
, then all C source files in that directory will be combined into a single MEX-file. I doubt that this is what you want. You need to call mex
for each of the MEX-files you want to build. Each MEX-file will become a function available within MATLAB.
add a comment |
up vote
2
down vote
You want to do this:
mex HBuild.c -IC:PathToHFiles
where C:PathToHFiles
is whatever the directory is that contains HShell.h
.
This will create a MEX-file called HBuild
(assuming that HBuild.c
contains a mexFunction
function, and no other dependencies exist).
If you do mex *.c
, then all C source files in that directory will be combined into a single MEX-file. I doubt that this is what you want. You need to call mex
for each of the MEX-files you want to build. Each MEX-file will become a function available within MATLAB.
add a comment |
up vote
2
down vote
up vote
2
down vote
You want to do this:
mex HBuild.c -IC:PathToHFiles
where C:PathToHFiles
is whatever the directory is that contains HShell.h
.
This will create a MEX-file called HBuild
(assuming that HBuild.c
contains a mexFunction
function, and no other dependencies exist).
If you do mex *.c
, then all C source files in that directory will be combined into a single MEX-file. I doubt that this is what you want. You need to call mex
for each of the MEX-files you want to build. Each MEX-file will become a function available within MATLAB.
You want to do this:
mex HBuild.c -IC:PathToHFiles
where C:PathToHFiles
is whatever the directory is that contains HShell.h
.
This will create a MEX-file called HBuild
(assuming that HBuild.c
contains a mexFunction
function, and no other dependencies exist).
If you do mex *.c
, then all C source files in that directory will be combined into a single MEX-file. I doubt that this is what you want. You need to call mex
for each of the MEX-files you want to build. Each MEX-file will become a function available within MATLAB.
answered Nov 8 at 22:16
Cris Luengo
16.9k51847
16.9k51847
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53216367%2fusing-matlab-c-compiler-to-convert-c-code-into-matlab%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown