Как мне использовать библиотеку BLAS, предоставляемую MATLAB?
Вопрос
Я заметил, что 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’
Это blas.h
предоставляется MATLAB, может использоваться сторонним приложением за пределами MATLAB?Если да, то что вызывает ошибку выше?
Решение
Я не уверен, что это полностью решит ваши проблемы, но, возможно, вам также придется включить stddef.h
поскольку именно здесь ptrdiff_t
тип определен.
Не связан с StackOverflow