I am compiling a very simple Dll that uses the Intel MKL libraries. I am using Visual studio 2015 Community edition and Intel MKL 2017 (just released). If I compile using X64 there is no problem and the Dll works fine with other code. If I set it to Win32, I get the error message as shown on the attached screenshot. The .target files have entries that are not in the .target files of the X64 version. Any idea where things went wrong? Regards Karl Eschberger
I get this error too, building a 32-bit exe, but not when building the 64-bit version. Using Visual Studio Professional 2015 Update 3.
I don't have the Intel Compiler, only the Math Kernel Library, so $(SuiteVer) = "[Intel Compiler is not installed]" makes sense.
Could you please provide a test case, we would like to reproduce and check if the problem caused by some compiler settings, thank you for posting your problem.
I could not reproduce your problem, it seems the problem is caused by compiler option. Normally, if you installed Intel compiler, the $(SuiteVer)=17 (for parallel studio 2017, once you install ICC, whatever you use icl or not). I am not sure, if developer team set some option required Intel compiler, but normally, you could use microsoft compiler, Intel compiler or GNU compiler to compile your program (te intel compiler is not required). I will post your problem to developer team, and they could give a reply soon. Thank you for posting your problem.
Have you install Intel Compiler 17.0 and integrated into VS both for ia32 & intel64 successfully? Please use a simple HelloWorld program compiling with Intel C++ compiler to see if this problem still remain. Thank you.
I do not have Intel Compiler – it is not part of our subscription and we have never needed it.
We have compiled this Dll for years in Win32 without a problem – it is only now that it has surfaced.
Please try following steps to fix this problem:
"C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140\ImportBefore\Intel.Libs.MKL.v140.targets"
<_MKLArgPlatform Condition="$(SuiteVer) >= 17 OR $(MKLMNewArgFormat) == 1">ia32</_MKLArgPlatform>
replace with the lines:
<_MKLArgPlatform Condition="'$(SuiteVer)' == '[Intel Compiler is not installed]' AND $(MKLMajorVersion) >= 17">ia32</_MKLArgPlatform> <_MKLArgPlatform Condition="'$(SuiteVer)' != '[Intel Compiler is not installed]' AND ($(SuiteVer) >= 17 OR $(MKLMNewArgFormat) == 1)">ia32</_MKLArgPlatform>
And Let me know if this solution could be useful to you. Thank you.
The change to the .targets file did the trick.
I also had to add the path of the libiomp5md.lib file in the VC++ Directories -> Library Directories entry under "Properties".
Thank you very much for the help. Please update the installer in the next version to alter the .targets file as directed.