Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Intel_C_Intel
Employee
59 Views

What is mkl.h and mkl_c.lib ?

Hello,
I very naive question.
What is mkl_c.lib ? Is it a C wrapper library (C code compiled into lib) to use LAPACK routines in c ? OR is it the original fortranlib file (Fortran code compiled to a lib).
I understand mkl.h is the (only) header that we need to use all the MKL routines.
I come to this question since I have code that runs fine in VC++ 6.0 but does not run at all with VC++.NET with managed extensions. Any function that doesnt take a char parameter works but the one with char parameter doesnt work. I am wondering if I need to pass the character in fortran style.
Thanks for your patience.
vikrantca
0 Kudos
1 Reply
Intel_C_Intel
Employee
59 Views

MKL is largely independent of compilers. But interfaces as defined by various standards change. MKL supports two interfaces - cdecl and Compaq Visual Fortran default, which is very similar to stdcall except in how strings are passed.

So, mkl_c.lib supports cdecl and mkl_s.lib supports CVF default.

All characters are to be passed by reference just like other scalars are since underneath is a routine that obeys Fortran rules.

If you use Microsoft tools, you should link to mkl_c.lib.

Bruce