We have been testing a few linear solvers and are at a point when we want to include several of them into the same project. We want our end user to be able to switch between the different solvers since one may outperform the other in certain cases. This causes some problems during the linking.
Some of my colleagues ported MUMPS (mumps.enseeiht.fr) to Windows using the Intel toolset and the following .lib files in their makefile:
lib_intel= mkl_intel_c.lib mkl_lapack95.lib libguide.lib mkl_core.lib mkl_intel_thread.lib mkl_solver.lib mkl_scalapack_core.lib
On the other hand, I was using PARDISO from the MKL and the /Qmkl flag to take of everything. This greatly simplified the linking.
Now that we want to include both MUMPS and PARDISO, the /Qmkl flag and the additional .lib files seem to conflict. I am assuming that this is because /Qmkl is already including some .lib files but I am unsure on how to resolve the conflict.
Any suggestions ? I found the MKL link advisor suggested in the stickies but it doesn't seem to help in this case. Is there any way we can see which libraries are actually being added by /Qmkl ?
Michel, should make one remark -some interface libraries (i.e mkl_lapack95.lib mkl_blas95.lib fftw3xc_ms) are not MKL standard library, so the "one button" integration don't support it.
Could you tell What is the conflict error messagelike?
/Qmkl:parallel= "mkl_solver.lib mkl_intel_c.libmkl_intel_thread.lib mkl_core.lib libiomp5md" + set environment path.
/Qmkl:cluster, there isa typo error in it. The current version is not usable.
But it should be = mkl_solver.lib mkl_intel_c.libmkl_cdft_core.lib mkl_scalapack_core.libmkl_blacs_intelmpi.libmkl_intel_thread.lib mkl_core.lib libiomp5md"
In general, link these mkl library and use /Qmkl have same effect. Just guess, according to your discription, is the confictbetween libiomp5md.lib and libguide.lib?
Here is one discussionabout the topic http://software.intel.com/en-us/articles/omp-error-15-initializing-libguide40dll-but-found-libiomp5m...