Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

compile error against MKL in Matlab mex C

Kai_S_
Beginner
721 Views

Hi,

I am trying to compile a piece of code calling MKL into a matlab function. The code works great in VC++ in Windows XP sp3. So I wrote a mex wrapper for my code.

My MKL version is 10.0.5.025 and my compile script looks like this.

mex -v -I"D:\\Libs\\Intel\\MKL\\10.0.5.025\\include" quad_mkl.c D:\\Libs\\Intel\\MKL\\10.0.5.025\\ia32\\lib\\mkl_intel_c.lib D:\\Libs\\Intel\\MKL\\10.0.5.025\\ia32\\lib\\mkl_intel_thread.lib D:\\Libs\\Intel\\MKL\\10.0.5.025\\ia32\\lib\\mkl_core.lib D:\\Libs\\Intel\\MKL\\10.0.5.025\\ia32\\lib\\libguide40.lib

But the compiler (lcc) keeps complaining the following error message.

Did I do anything wrong somewhere? Thanks!


Warning H:\\Matlab\\hy\\mex\\quad_mkl.c: D:\\Libs\\Intel\\MKL\\10.0.5.025\\include\\mkl_vsl_functions.h: 299 empty declaration

...

Warning H:\\Matlab\\hy\\mex\\quad_mkl.c: D:\\Libs\\Intel\\MKL\\10.0.5.025\\include\\mkl_vsl_functions.h: 486 empty declaration
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 undeclared identifier `new'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 operands of = have illegal types `pointer to double' and `int'
Warning H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 possible usage of new before definition
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 syntax error; found `double' expecting `;'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 illegal statement termination
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 skipping `double' `['
Warning H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 Statement has no effect
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 syntax error; found `]' expecting `;'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 illegal statement termination
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 skipping `]'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 operands of = have illegal types `pointer to double' and `int'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 syntax error; found `double' expecting `;'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 illegal statement termination
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 skipping `double' `['
Warning H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 Statement has no effect
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 syntax error; found `]' expecting `;'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 illegal statement termination
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 36 skipping `]'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 37 operands of = have illegal types `pointer to double' and `int'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 37 syntax error; found `double' expecting `;'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 37 illegal statement termination
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 37 skipping `double' `['
Warning H:\\Matlab\\hy\\mex\\quad_mkl.c: 37 Statement has no effect
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 37 syntax error; found `]' expecting `;'
Error H:\\Matlab\\hy\\mex\\quad_mkl.c: 37 too many errors

C:\\MATLAB\\R2008A\\BIN\\MEX.PL: Error: Compile of 'quad_mkl.c' failed.

??? Error using ==> mex at 207
Unable to complete successfully.
0 Kudos
2 Replies
Vladimir_Koldakov__I
New Contributor III
721 Views

Hello,

Could you please provide the code quad_mkl.c?

You may attach (see http://software.intel.com/en-us/forums/showthread.php?t=62285how to attach) or simply copy/paste the code.

Thanks,
Vladimir

0 Kudos
Kai_S_
Beginner
721 Views
I solved the problem already. My code is c++ code (since I use "new" and "delete"), I shall name it quad_mkl.cpp and use a c++ compiler like VC++.

0 Kudos
Reply