I replaced my VS2015 installation by a current one and am trying to figure out how to get things working again.
Attempting to make a .obj in the ICL cmd environment by either ICL or CL gives:
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Versi
on 126.96.36.199 Build 20150815
Copyright (C) 1985-2015 Intel Corporation. All rights reserved.
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1114): err
or: identifier "FLT_TRUE_MIN" is undefined
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1177): err
or: identifier "DBL_TRUE_MIN" is undefined
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1240): err
or: identifier "LDBL_TRUE_MIN" is undefined
It looks like a disconnect in nested includes in Visual Studio, but no message about
Then, if the objects are built under VS2012, attempting to link under VS2015 gives
LINK : fatal error LNK1104: cannot open file 'kernel32.lib'
Although everything still works under VS2012.
I haven't been able to guess a repair procedure; is Modify preferred?
Shenghong responded to my IPS 6000136575. His cut down C++ test case shows that the failure is due to INCLUDE putting an older Microsoft version of float.h ahead of the updated one. It doesn't why working around this problem still doesn't allow for linking kernel32.lib.
We confirmed that the include problem is caused by Microsoft moving float.h to a folder which comes later in include path, without removing the one provided by an earlier vs2015. It's insufficient to remove vs2015 using add/remove menu. Maybe removing the entire installed folders will help. This looks contrary to Microsoft upgrade instructions.
Let me clarify the issue. I have same VS2015 version with Tim, and the float.h is NOT in VC\INCLUDE directory in this version, it is only in c:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt (also discussd in this thread: https://software.intel.com/en-us/forums/intel-c-compiler/topic/596318). But Tim mentioned that he has float.h in BOTH folders and VC\INCLUDE folder is before ucrt folder, thus causing the issue (and the issue affects MS compiler itself, it is not an issue of Intel compiler). The float.h in VC\INCLUDE may be from old VS2015 version, and when upgrading, it is not uninstalled completely.
Summary: the issue seems like an VS2015 upgrading issue and kind of bug of the upgrade installer. We cannot fix from Intel compiler side, as ANY compiler will be affected (by having a wrong float.h in the system...)! :)
The fix is to uninstall old VS2015 and maybe need to manually delete the Visual Studio 14.0 folder completely before install new VS2015.
@Tim: What Shenghong says makes sense and I think his suggestion to manually delete the VS folder completely before installing the newer 2015 version should work.... (thanks Shenghong for the clarification)