I am using devenv 2010 to build a combined c++/fortran msvc solution. I am running the build from the command line using the intel compilervars command (to set the desired 2015 intel fortran compiler). I then build using devenv /useenv.
My target platform is x64.
I have two questions:
- If I use compilervars.bat ia32_intel64 vs2010, the build is fine. However I get a warning "You are using an Intel supplied intrinsic header file with a third-party compiler" for every cpp file. What does this mean, and is it an issue?
- if I use compilervars.bat intel64 vs2010, none of the cpp files compiles. I get errors as follows.
TRACKER : error TRK0002: Failed to execute command: ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\CL.exe" @C:\Users\JEFT\AppData\Local\Temp\tmpf3e0b205768041b6a3d590dbee6c5b75.rsp"
Is it correct that I need to use the ia32_intel64 option also when my target platform is x64?
That is the correct option for targeting x64 when building on a 32-bit Windows installation.
The warning about header paths seems to come up regardless of whether you eventually get down to Microsoft include files. I guess your intent is to use the 2010 Microsoft C compiler along with ifort 2015. If you want to check, you can build your C++ in a pure Microsoft environment path, with ifort not visible, then complete the build in the ifort environment. I suppose some of the options, such as having some automatic IPP includes, won't be active if you don't have IPP and ICL installed, so any differences on that account would be ruled out.
To clarify: I have windows 7 64-bit, but my visual studio 2010 is an x86 application. In this scenario I should use ia32_intel64, yes?
Correct, my intent is to use ifort 2015 together with the 2010 microsoft c++ compiler. Why does compilervars set up an environment for intel c++ when it is the microsoft compiler which is being used?
I don't see why the pure intel64 ifort shouldn't work if your OS is full X64, but it's mainly a question of compile performance (and possibly sufficiency of allocations for interprocedural analysis, which could happen only between your Fortran procedures). That part of the question would be more topical on the Fortran Windows forum.
I've had some of those questions myself about the include paths, but the setup has to take into account the possibility of building some functions with ICL and some with MSVC. It doesn't seem much of an issue if you don't have any .h files in the Intel C++ include path. Among other things, it breaks ifort 2015 working with VS2015.2 (on account of getting tripped up in the Microsoft include paths), (but is no problem for VS2010/12/13). Trying to make up my mind whether I dare "upgrade" VS2015 to .3.
According to the error message in #2, it looks that you haven't installed MSFT 64-bit compiler. Please install it (sorry I forgot the exact name of the component including MSFT 64-bit compiler), and then go for "compilervars.bat intel64 vs2010".
Hope this helps.