error: unknown type name 'EXTERN_C'
Huang-XN opened this issue · comments
Hey,
I reproduced this error as it was in #201. But I could not solve it by commenting EXTERN_C void __attribute__((noreturn))
.
When I commented it, it produced another error as follow:
In file included from /Users/xxx/Documents/MATLAB/vlfeat-0.9.21/./toolbox/vlad/vl_vlad.c:15:
toolbox/mexutils.h:176:1: warning: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
mexErrMsgIdAndTxt (const char * identifier, const char * err_msg, ...) ;
^
int
toolbox/mexutils.h:176:1: error: conflicting types for 'mexErrMsgIdAndTxt'
/Applications/MATLAB_R2021a.app/extern/include/mex.h:159:28: note: previous declaration is here
LIBMWMEX_API_EXTERN_C void mexErrMsgIdAndTxt(
^
1 warning and 1 error generated.
make: *** [toolbox/mex/mexmaci64/vl_vlad.mexmaci64] Error 255
The command I used was make CC=/usr/local/opt/llvm/bin/clang DISABLE_OPENMP=no MEX=/Applications/MATLAB_R2021a.app/bin/mex ARCH=maci64
I am using MacOS BigSur 11.5.1 and MATLAB R2021a.
Can anyone solve it?
Thanks
Huang
I was getting the same error after commenting the line. It looks like EXTERN_C is a mistake, I changed it to just 'extern', what I mean is on line 175 of mexutils.h file I changed is from
EXTERN_C void attribute((noreturn))
to this :
extern void attribute((noreturn))
After doing this and running the make command again it was able to compile successfully.
I hope this helps.