mex: Link Failed when compile C file
Show older comments
I have my C file and h file in one directory. but when I use mex command like
>>mex checkPeriod.c checkPeriod.h
I got some error:
checkPeriod.h:16:24: error: mwmathutil.h: No such file or directory
checkPeriod.h:18:22: error: tmwtypes.h: No such file or directory
checkPeriod.h:19:17: error: mex.h: No such file or directory
checkPeriod.h:20:19: error: emlrt.h: No such file or directory
checkPeriod.h:21:18: error: blas.h: No such file or directory
In file included from checkPeriod.h:23:
checkPeriod_types.h:25: error: expected specifier-qualifier-list before ‘uint32_T’
checkPeriod_types.h:35: error: expected specifier-qualifier-list before ‘real_T’
checkPeriod_types.h:50: error: expected specifier-qualifier-list before ‘real_T’
checkPeriod_types.h:67: error: expected specifier-qualifier-list before ‘real_T’
checkPeriod_types.h:83: error: expected specifier-qualifier-list before ‘int32_T’
checkPeriod_types.h:97: error: expected specifier-qualifier-list before ‘boolean_T’
checkPeriod_types.h:130: error: expected specifier-qualifier-list before ‘int32_T’
checkPeriod_types.h:144: error: expected specifier-qualifier-list before ‘real_T’
checkPeriod_types.h:160: error: expected specifier-qualifier-list before ‘int32_T’
checkPeriod_types.h:174: error: expected specifier-qualifier-list before ‘real_T’
checkPeriod_types.h:192: error: expected specifier-qualifier-list before ‘int32_T’
checkPeriod_types.h:206: error: expected specifier-qualifier-list before ‘int32_T’
checkPeriod_types.h:221: error: expected specifier-qualifier-list before ‘real_T’
checkPeriod_types.h:233: error: expected specifier-qualifier-list before ‘real_T’
checkPeriod_types.h:245: error: expected specifier-qualifier-list before ‘real_T’
checkPeriod.h:26: error: expected ‘)’ before ‘boundary’
mex: link of ' "checkPeriod.mexa64"' failed.
At beginning, I thought this is because a lot of other function used in this function. But when I try to compile all the files, these errors still came out. Any help??
Answers (1)
James Tursa
on 21 Jul 2016
Edited: James Tursa
on 21 Jul 2016
You typically do not include header .h files in a mex command. They are generally intended to be included in the source file via a #include statement. Do you have this line in checkPeriod.c:
#include "checkPeriod.h"
If so, things are set up as I would expect, and you can try this:
mex checkPeriod.c
This is all somewhat guesswork on my part because I can't see your source files.
1 Comment
Sizhe Liu
on 21 Jul 2016
Categories
Find more on Write C Functions Callable from MATLAB (MEX Files) in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!