Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

VS2015 upgrade trouble

TimP
Honored Contributor III
642 Views

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 16.0.0.110 Build 20150815
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

loopstl.cpp
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1114): err
or: identifier "FLT_TRUE_MIN" is undefined
                return (_FLT_TRUE_MIN);
                        ^

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1177): err
or: identifier "DBL_TRUE_MIN" is undefined
                return (_DBL_TRUE_MIN);
                        ^

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1240): err
or: identifier "LDBL_TRUE_MIN" is undefined
                return (_LDBL_TRUE_MIN);
                        ^

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? 

0 Kudos
12 Replies
Melanie_B_Intel
Employee
642 Views

Tim, Will you kindly open a ticket on Intel Premier Support?  Thanks. --Melanie

0 Kudos
JenniferJ
Moderator
642 Views

Hi Tim,

make sure to pass those /D options (you can find them from the project property dlg). it seems you might have missed one.

Jennifer

0 Kudos
TimP
Honored Contributor III
642 Views
Ips submitted. If there is documentation about this vs2015 option requiring new -D settings please show where to look. Meanwhile I dropped back to vs2013. The problem is exposed by include of stl headers.
0 Kudos
KitturGanesh
Employee
642 Views

Hi Tim, 
Can you let me know what the issue number in IPS is so I can ensure it's followed up towards resolution by the engineer looking into it?
Thanks,
Kittur

0 Kudos
TimP
Honored Contributor III
642 Views

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.

0 Kudos
KitturGanesh
Employee
642 Views

Thanks Tim, yes I find Shenghong is on top of this issue in IPS that you've filed, thx.

_Kittur

0 Kudos
TimP
Honored Contributor III
642 Views

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.

0 Kudos
KitturGanesh
Employee
642 Views

Thanks Tim, I've updated your feedback in the issue in IPS that Shenghong is working with you so an issue can be filed accordingly, thanks.

_Kittur 

0 Kudos
Shenghong_G_Intel
642 Views

@Kittur,

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.

Thanks,

Shenghong

0 Kudos
KitturGanesh
Employee
642 Views

@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)

_Kittur

0 Kudos
TimP
Honored Contributor III
642 Views

Yes, I intend to remove and then delete the vs2015 (and Windows kits\10?) folders to reinstall when I return to internet territory.

 

 

 

 

 

 

 

0 Kudos
KitturGanesh
Employee
642 Views

Thanks Tim, let us know if it resolves the issue, thx

_Kittur

0 Kudos
Reply