I am having a visual studio project which requires the Intel C++ compiler. I took a deeper look at the code and found out that the Intel C++ compiler is needed because of a numerical library. This numerical library includes the following files:

- Code: Select all
`#include "mkl_types.h"`

#include "mkl_cblas.h"

#include "mkl_lapack.h"

Now I tried to replace LAPACK / CBLAS from Intel with the MinGW based implementation as described in:

http://icl.cs.utk.edu/lapack-for-windows/lapack/index.html

For LAPACK, this works fine but for CBLAS not. I have compiled CBLAS from there:

http://www.netlib.org/blas/

I have included cblas.h and added the compiled library to the Additional Dependencies within the Visual Studio Project.

Anyway I get the following linking error:

1><replaced>.obj : error LNK2019: unresolved external symbol "double __cdecl cblas_ddot(int,double const *,int,double const *,int)" (?cblas_ddot@@YANHPBNH0H@Z) referenced in function "double __cdecl <replaced>(class Matrix<double> const &,class Matrix<double> const &)" (?<replaced>@@YANABV?$Matrix@N@@0@Z)

1><replaced>.obj : error LNK2019: unresolved external symbol "void __cdecl cblas_dgemv(enum CBLAS_ORDER,enum CBLAS_TRANSPOSE,int,int,double,double const *,int,double const *,int,double,double *,int)" (?cblas_dgemv@@YAXW4CBLAS_ORDER@@W4CBLAS_TRANSPOSE@@HHNPBNH2HNPANH@Z) referenced in function "void __cdecl <replaced>(double,class Matrix<double> const &,class Matrix<double> const &,double,class Matrix<double> &,enum CBLAS_TRANSPOSE,enum CBLAS_ORDER)" (?<replaced>@@YAXNABV?$Matrix@N@@0NAAV1@W4CBLAS_TRANSPOSE@@W4CBLAS_ORDER@@@Z)

1><replaced>.obj : error LNK2019: unresolved external symbol "void __cdecl cblas_dgemm(enum CBLAS_ORDER,enum CBLAS_TRANSPOSE,enum CBLAS_TRANSPOSE,int,int,int,double,double const *,int,double const *,int,double,double *,int)" (?cblas_dgemm@@YAXW4CBLAS_ORDER@@W4CBLAS_TRANSPOSE@@1HHHNPBNH2HNPANH@Z) referenced in function "void __cdecl <replaced>(double,class Matrix<double> const &,class Matrix<double> const &,double,class Matrix<double> &,enum CBLAS_TRANSPOSE,enum CBLAS_TRANSPOSE,enum CBLAS_ORDER)" (?<replaced>@@YAXNABV?$Matrix@N@@0NAAV1@W4CBLAS_TRANSPOSE@@2W4CBLAS_ORDER@@@Z)

1>

Does anybody know how to replace mkl_cblas? Or any hints what could be wrong here?

Thanks a lot!