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

VC 2019 16.8 does not work with Intel C++ 2020.4.311

Przemysław_O_
Beginner
9,522 Views

I have installed fresh VC 2019 16.8 together with Intel C++ 2020.4.311 and it produces:

 

Rebuild started...
1>------ Rebuild All started: Project: GdbAPI, Configuration: Release x64 ------
1>Build started 10.11.2020 22:48:34.
1>Target _PrepareForClean:
1>  Deleting file "Release64\GdbAPI.tlog\GdbAPI.lastbuildstate".
1>Target PrepareForBuild:
1>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(476,5): warning MSB8004: Intermediate Directory does not end with a trailing slash.  This build instance will add the slash as it is required to allow proper evaluation of the Intermediate Directory.
1>Done building target "PrepareForBuild" in project "GdbAPI.vcxproj".
1>Target InitializeBuildStatus:
1>  Touching "Release64\GdbAPI.tlog\unsuccessfulbuild".
1>Target MessageBuildingWithCompiler:
1>  Building with Intel(R) C++ Compiler 19.1
1>Target ClCompile:
1>  ***** ClCompile (x64 - Intel C++)
1>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018: The "ICL" task failed unexpectedly.
1>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018: System.ArgumentNullException: Value cannot be null.
1>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018: Parameter name: key
1>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018:    at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
1>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018:    at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
1>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018:    at Intel.Build.ICLTasks.ICL.IsOMPDisabled()
1>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018:    at Intel.Build.ICLTasks.ICL.set_OffloadOpenMPTarget(String value)
1>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(471,7): error MSB4026: The "OffloadOpenMPTarget=%(ClCompile.OffloadOpenMPTarget)" parameter for the "ICL" task is invalid.
1>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4063: The "ICL" task could not be initialized with its input parameters.
1>Done building target "ClCompile" in project "GdbAPI.vcxproj" -- FAILED.
1>
1>Done building project "GdbAPI.vcxproj" -- FAILED.
1>
1>Build FAILED.
1>
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(476,5): warning MSB8004: Intermediate Directory does not end with a trailing slash.  This build instance will add the slash as it is required to allow proper evaluation of the Intermediate Directory.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018: The "ICL" task failed unexpectedly.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018: System.ArgumentNullException: Value cannot be null.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018: Parameter name: key
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018:    at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018:    at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018:    at Intel.Build.ICLTasks.ICL.IsOMPDisabled()
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4018:    at Intel.Build.ICLTasks.ICL.set_OffloadOpenMPTarget(String value)
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(471,7): error MSB4026: The "OffloadOpenMPTarget=%(ClCompile.OffloadOpenMPTarget)" parameter for the "ICL" task is invalid.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets(347,5): error MSB4063: The "ICL" task could not be initialized with its input parameters. 
1>    1 Warning(s)
1>    3 Error(s)
1>
1>Time Elapsed 00:00:00.05
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

It seems that they not compatible, or do you know any workaround?

0 Kudos
33 Replies
Robert_B_6
Beginner
1,917 Views

There's a variety of reasons why we can't upgrade all projects from 19.1 immediately, and I'd like to try the fix that was previously posted.

For example, OneAPI's support for float128 is sketchy at best (already reported).

0 Kudos
Berkan
Novice
1,903 Views

Could you quote the post that has a broken link you're referring to

0 Kudos
Robert_B_6
Beginner
1,898 Views

I believe I created the thread in the wrong category.  We are still working (between projects) to create a small example that reproduces our issues, but I've detailed 3 issues uncovered during our migration to OneAPI.

https://community.intel.com/t5/Intel-oneAPI-Data-Parallel-C/OneAPI-float128-Quad-support/m-p/1260400 

0 Kudos
Mike_C1
Beginner
1,780 Views

I'm getting the same issue. I only use Intel compiler to compile a few performance sensitive modules using TBB rather than Open MP. I wasn't willing to downgrade Visual Studio or use a beta Intel compiler - I have enough problems with the released versions and the VS compiler integration regularly breaking.

 

I managed to worked around the problem by editing (after backing up!)

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\Intel C++ Compiler 19.1\Toolset.targets

 

and removing the lines that cause errors - they appear in the error messages. 

  • CheckPointers ="%(ClCompile.CheckPointers)"
  • CheckDanglingPointers ="%(ClCompile.CheckDanglingPointers)"
  • OpenMP ="%(ClCompile.OpenMP)"
  • OffloadOpenMP ="%(ClCompile.OffloadOpenMP)"
  • OffloadOpenMPTarget ="%(ClCompile.OffloadOpenMPTarget)"

I backed up before editing by creating a git repo of all the files (only a few MB) in

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC

which might be useful for tracking future changes or tracking stuff left behind by failed uninstalls.

0 Kudos
Viet_H_Intel
Moderator
3,263 Views

We didn't know this problem until we saw it reported. We have this article which lists compilers support.

https://software.intel.com/content/www/us/en/develop/articles/intel-compilers-compatibility-with-microsoft-visual-studio-and-xcode.html.


Thanks,


0 Kudos
Armando_L_A_
New Contributor I
3,249 Views

Thank you for your answer.

Armando

0 Kudos
Viet_H_Intel
Moderator
1,960 Views

This issue has been resolved and we will no longer respond to this thread.  

If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only.

Thanks,


0 Kudos
jase439
Beginner
1,686 Views

Can someone confirm that the 19.2 "legacy" compiler included in oneAPI + HPC toolkit is NOT a beta compiler?

0 Kudos
Viet_H_Intel
Moderator
1,677 Views

No, it is not a beta compiler.

0 Kudos
Ron_Green
Moderator
1,672 Views

it's v2021 "Intel(R) C++ Compiler Classic" not 19.2. 

It's not beta but, rather, is a bug in the version string in the initial 2021.1 release as explained here: https://community.intel.com/t5/Intel-C-Compiler/Announcing-Intel-C-Compiler-Patch-Release-2021-1-2-Answers-to/m-p/1240377#M38090

 

 

 

0 Kudos
jase439
Beginner
1,665 Views

Thanks, Gents. I appreciate the additional clarification. Will the legacy compiler continue to be developed/supported (and if so, for how long)  or will it be supplanted altogether by the DPC++ compiler at a future date.

0 Kudos
Ron_Green
Moderator
1,593 Views

ICC, the Intel C++ Compiler Classic, will continue to be distributed side-by-side alongside Intel DPC++/C++ Compiler ( ICX and DPCPP ) for several years.   ICC will get some minor changes and any critical bug fixes along this multi-year path.  ICC has support for the upcoming/future Sapphire Rapids processor but beyond that no new processor support is planned for ICC.  Those will go into ICX.  Also, we have no plans for major new features to go into ICC.

The performance of ICX vs ICC is +- 10% that of ICC today.  opt-report is weak in ICX.  Those sort of things need to meet or exceed that of ICC in ICX before we transition fully.  And even then, it will be supported using the same model we've always used - release version + 2 prior versions.  So roughly 2 years after it is replaced it will be supported.  And we will keep it on IRC for download for roughly 2 more years after support stops.

SO - takeaways

ICC will be available for years, we won't just drop it.

But ICX  and DPCPP is the path forward in our C++ compiler technology.

Both will be provided in oneAPI for several years.  ICC will stay on IRC for many years.

ICX is evolving rapidly and we won't transition until it proves itself against ICC.

0 Kudos
jase439
Beginner
1,586 Views

That was an insanely thorough response (this should be pinned). Thanks for that, mate. Good to know we can keep on with ICC and gradually phase in the newer compiler over time as it matures.

0 Kudos
Reply