我注意到,MATLAB等等提供BLAS和LAPACK头:

$ ls ${MATLAB_DIR}/extern/include/
blas.h            engine.h    lapack.h           mat.h            mclmcr.h      mex.h           mwutil.h
blascompat32.h    fintrf.h    libmatlbm.mlib     matrix.h         mclmcrrt.h    mwdebug.h       tmwtypes.h
emlrt.h           io64.h      libmatlbmx.mlib    mclcppclass.h    mcr.h         mwservices.h

我想用他们对我的编译代码,所以我试图编译如下:

<强> ex_blas.c

#include <blas.h>

int main()
{
    return 0;
}

使用下面的命令:

$ mex ex_blas.c

但是,这将返回一个错误:

In file included from ex_blas.c:1:
/Applications/MATLAB_R2009b.app/extern/include/blas.h:51: error: syntax error before ‘*’ token
/Applications/MATLAB_R2009b.app/extern/include/blas.h:62: error: syntax error before ‘*’ token
/Applications/MATLAB_R2009b.app/extern/include/blas.h:77: error: syntax error before ‘*’ token
/Applications/MATLAB_R2009b.app/extern/include/blas.h:92: error: syntax error before ‘*’ token
/Applications/MATLAB_R2009b.app/extern/include/blas.h:103: error: syntax error before ‘ptrdiff_t’
/Applications/MATLAB_R2009b.app/extern/include/blas.h:122: error: syntax error before ‘ptrdiff_t’

时由MATLAB可用MATLAB的外侧设置由第三方应用blas.h?如果有,是什么原因造成上述错误?

有帮助吗?

解决方案

我不知道这是否会彻底解决你的问题,但你可能还需要包括的 stddef.h 因为这是ptrdiff_t类型被定义在哪里。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top