Compiling in Visual Studio 2015 with the Visual Studio 2013 platform toolset is not working because of some Intel composer platform files. The Intel configuration is preventing me of compiling legacy applications because of it.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets\v120\ImportBefore\Intel.Libs.MKL.v120.targets(44,5): error MSB6003: The specified task executable "cmd.exe" could not be run. The working directory "mkl\tools" does not exist.
Compiling the same configuration in Visual Studio 2013 IDE is working.
Applications installed on my system (related):
- Intel Composer XE 2013
- Intel Composer XE 2013 SP1
- Visual Studio 2013
- Visual Studio 2015
Here are the steps taken to easily reproduce the error.
- Create a new Visual Studio C++ Win32 project.
- Project is set to VS2015 toolset (compilation works).
- Change the platform toolset to Visual Studio 2013 (Project / Properties / Configuration Properties / General -> Platform Toolset).
- Compile and get the results above.
Side note : I have the same results when choosing Visual Studio 2012 but no error when using Visual Studio 2010 toolset.
Choosing Intel Compiler XE 14.0 is not working either, altough I am not expecting it to work because it is not yet integrated for Visual Studio 2015.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets\Intel C++ Compiler XE 14.0\Toolset.targets(123,5): error : Could not expand ICInstallDir variable. Platform toolset may be set to an invalid version number.
What I am not happy tough is that the installation of Intel Composer is preventing me from compiling VS2013 applications inside VS2015 which is preventing me of using VS2015 for some projects.
Is there any way of preventing this error? Is there any configuration in Visual Studio 2015 that could be set in order for the target files to be parsed properly? Uninstalling Intel Composer 2013 SP1 is not an option since it is being used in other projects/solutions.
Intel C++ 2013xe should not be affected by vs2015, provided that you don't modify the visual studio it was installed against. If you start that version of C++, there would be no option for getting vs2015 involved.
If you install C++ 2015xe update 4 and select integration into both vs2013 and vs2015, it will install shortcuts to bring it up with either vs2013 or vs2015. If worst comes to worst, you might need to repeat the install of C++ 2013xe to keep it available with vs2013. I don't know whether it will allow both C++ 2013 and 2013 SP1 to remain active along with 2015. If you prefer to keep both of those, you could avoid integrating C++ 2015xe into VS2013.
I'm not certain I'm following entirely what you want to do or why you want to get vs2015 involved with older tools (which I don't expect to work that way).
Thank you for your response.
My primary goal was to make the transition between Visual Studio 2015 with the IDE without having to change the projects at first
VS Solution #1 : projects compiled using VS2013 toolset.
VS Solution #2 : projects compiled with a mix of VS2013 toolset and Intel Compiler 14.0
I was expecting Solution #1 to compile inside VS2015 IDE since there was no Intel C++ project involved.
What I did since I wrote the first comment is to install Intel C++ XE 2015 update 4 which replace the integration with Visual Studio. I am now happy to see that now #1 is now compiling inside VS2015.
Unfortunately, projects in #2 that are using Intel Compiler 14.0 are now not being loaded by Visual Studio. When manually switching a project toolset to Compiler 14.0 I get an error about V120\Microsoft.Cpp.DesignTime.targets not being found. This is probably due to the toolset not being found. Selecting Intel Compiler 15.0 works tough.
My solution will be to change the toolset of Intel Compiler 14.0 to 15.0 which seems to work now that I installed it after the installation of VS2015. Also 2013xeSP1 and 2015xe is still working inside VS2013.
Your original post seems a bug to me. It might happen with Intel Parallel Studio XE 2015 earlier than update 4 that doesn't support VS2015.
I'll check with our developers on this.
The issue in your send post related to "VS Solution #2 : projects compiled with a mix of VS2013 toolset and Intel Compiler 14.0", this should work.
Here is what should be done: set the VS2015 project to use VS2013 toolset first, then select the file(s) to set them to use Intel C++. then open those files' property, change the property "Platform toolset" from "Intel C++ Compiler 15.0" to "Intel C++ Compiler 14.0".
Let me know how it goes.
Hi Jennifer, thank you for your support.
I am not sure I am following you in your comment #4 with the manipulation you are providing. There is no way to change the Platform toolset for particular files inside a project in Visual Studio, it can only be done on projects.
I think I have found the issue with Intel 14.0 not being able to load inside Visual Studio 2015. It seems to be related to the default property of "Base Platform toolset" which was not set in the project (which default to v140 in VS2015). If I change the Platform toolset to 14.0 without specifying the "Base Platform Toolset" I will get the error of Visual Studio. Changing the "Base Platform Toolset" to v120 will works.
This is leading me to another problem regarding this property when used with "Intel C++ Compiler XE 15.0" toolset.
When selecting "Base Platform Toolset" to v110 or v120, it seems that Intel is still using the v140 toolset (VCInstallDir property points to v140 directory). Going in the VC++ Directories page confirmed me that issue. I also confirmed that by displaying the include directory when compiling a file (Advanced -> Show Includes). Using v100 is pointing to Visual Studio 2010 though. I don't see this issue in Visual Studio 2013.
Here are the Version of Visual Studio that I have installed:
- Visual Studio 2010 Professional SP1 (v100)
- Visual Studio 2012 Professional Update 4 (v110)
- Visual Studio 2013 Professional Update 5 (v120)
- Visual Studio 2015 Professional (v140)
I have re-installed Intel composer after the installations of Visual Studio to be sure and the issue is still there.
- Intel Composer 2013 SP1 Update 5.
- Intel Composer 2015 Update 4.
The following configuration does not work also:
- Visual Studio 2015
- PlatformToolset = Intel C++ Compiler XE 14.0
- BasePlatformToolset = v100
This configuration cannot be set in the configuration page without having the error message from Visual Studio saying that the values are invalid. That configuration was working in Visual Studio 2013. Loading a project with that configuration in Visual Studio 2015 will either fail the project to load or fail at compilation time (depending on which configuration is selected when loading the solution) with the following message:
1>Error: The imported project "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.DesignTime.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.targets
Thank you for your support.
an update to the issue below: Open Project properties dialog,
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\Win32\PlatformToolsets\v120\ImportBefore\Intel.Libs.MKL.v120.targets(44,5): error MSB6003: The specified task executable "cmd.exe" could not be run. The working directory "mkl\tools" does not exist.
About the issue with setting different "Base Toolset", it's been reported and is been worked on as well. If all goes well, the fix should be in the update 1 release.