I tried to addMKL libraries to avisual C++ 6.0 project and was partially successful. I followed instructions given to me by someone else who had done it successfully which I've included at the end of this message. Despite following those instructions I got the following messages.
In file included from z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml.h:36,
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:58: error: expected initializer before 'VSABS'
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:59: error: expected initializer before 'VDABS'
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:60: error: expected initializer before 'vsabs'
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:61: error: expected initializer before 'vdabs'
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:62: error: expected initializer before 'vsAbs'
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:63: error: expected initializer before 'vdAbs'
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:66: error: expected initializer before 'VCABS'
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:67: error: expected initializer before 'VZABS'
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:68: error: expected initializer before 'vcabs'
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:69: error: expected initializer before 'vzabs'
z:/n4_extsw/x86/extsw/MKL/10.2.5.035/include/mkl_vml_functions.h:70: error: expected initializer before 'vcAbs'
there are many more expected initializer error messages after the above
I also got the message
LNK2001 unresolved external symbol _cblas_cdotu_sub
Does anyone have anyidea how to solve these problems.
Here is the procedure I used to get my c++ program to work with MKL. This was done for software written by siemens so the paths and variable names below are theirs.
1) Change the main MakeIce.mk, because it overwrites XLINUX_LIB_PATHS,
which means that any changes in the local file don't work. Added this
line to n4\\pkg\\MrApplications\\MrIDEA\\utils\\MakeIce.mk:
XLINUX_LIB_PATHS += -L $(IDEA_BASE)/n4_extsw/vista_xlinux/extsw/mkl/em64t
2) Add the following to your makefile:
INCLPATHS_LOCAL += -I$(IDEA_BASE)/n4_extsw/x86/extsw/MKL/10.2.5.035/include
XLINUX_INCLUDE_PATHS += -I$(IDEA_BASE)/n4_extsw/x86/extsw/MKL/10.2.5.035/include
3) Copy the MKL include directory from Intel directory to
5) Make copies of the core, sequential and intel libraries with a "d" added
before the ".lib". I don't know if this is the best thing to do,
but it works.
6) Include mkl.h, or at least include explicit prototypes of any methods that you want to use from MKL. (I do the latter, to avoid type conflicts.)
MKL does not support VC++ 6.0 now, and it require Microsoft Visual Studio* 2005 at least. The libraries for Intel MKLdoes not look correct in the linkage. It should be like the following for the sequential libraries: mkl_intel_c.lib mkl_sequential.lib mkl_core.lib
I have to use visual C++ 6.0 because that's what Siemens uses and I'm programming their code. Siemens is using an MKL library at present on their MRI scanners even though they use the visual c++ 6.0 programming environment for windows. They also use a linux computer where I think g++ is running with mkl.
please try to check would this linking line "mkl_intel_c.lib mkl_sequential.lib mkl_core.lib" help you?
LNK2001 unresolved external symbol _cblas_cdotu_sub - these symbols are resolved from