2009-11-14 80 views
2

我注意到,MATLAB提供等等的BLAS和LAPACK標題:如何使用MATLAB提供的BLAS庫?

$ 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?如果是,導致上述錯誤的是什麼?

回答

4

我不確定它是否能夠完全解決您的問題,但您也可能必須包含stddef.h,因爲這是定義ptrdiff_t類型的地方。