Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28384 Discussions

LINK : fatal error LNK1104; cannot open file 'ucrtd.lib' 2019, w8.1

MWind2
New Contributor III
4,698 Views

I had been working with F2020beta with W10, but when I installed F2019U5 on W8.1 and a new installation of VS2019P, I am getting "LINK : fatal error LNK1104; cannot open file 'ucrtd.lib'". I have searched my drive for ucrtd.lib without it being found. Windows Universal CRT is part of the installation. The 2020beta worked fine on W10 on with VS2019 and VS2017. ????

0 Kudos
14 Replies
MWind2
New Contributor III
4,698 Views

Same problem on VS2017P, VS2015P on W8.1; works on VS2013P,81.

0 Kudos
Steve_Lionel
Honored Contributor III
4,698 Views

On my system, ucrtd,lib is in C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\ucrt\x64 This is installed as part of Visual Studio when you select the option for C++ Desktop as indicated in https://software.intel.com/en-us/articles/installing-microsoft-visual-studio-2019-for-use-with-intel-compilers

0 Kudos
MWind2
New Contributor III
4,698 Views

Last night not ucrtd.lib found after install of VS2019P. Uninstalled VS2019P, many found in the right place. Still error on VS2015P and VS2017P. Now doing repair of VS2015P, VS2017P later. If Intel integrations disappear, is there a way to run integrations from exe or must it be done by Intel install modify?

0 Kudos
Steve_Lionel
Honored Contributor III
4,698 Views

Generally you will want to do a Modify or Repair on the Intel installer. In times past it was possible to hand-register integrations, but no longer.

Further reading: https://software.intel.com/en-us/articles/intel-software-development-tools-integration-to-vs2017-issue

https://software.intel.com/en-us/articles/intel-software-development-tools-integration-to-microsoft-visual-studio-2019-issues

For VS2015: https://software.intel.com/en-us/articles/troubleshooting-fortran-integration-issues-with-visual-studio/

0 Kudos
MWind2
New Contributor III
4,698 Views

Probably only I would be confused by the modify Visual Studio Integrations choices. I had installed Intel CF2019u5 composer before I thought I would try VS2019P. Integrations were already done with VS2013P, VS2015P and VS2017P. Afterwards, when doing a modify, I thought, no I don't want to install AGAIN on 2013,2015 and 2017 and I unchecked those and checked only 2019. Silly me. Considering what VS2019P did with my ucrtd location and who knows what else, uninstalling and reinstalling an integration based on a new environment might be a necessity rather than leaving an old integration intact. So if installing again means removing the old one first, then that would be a good meaning of leaving the checked box.

0 Kudos
MWind2
New Contributor III
4,698 Views

I've uninstalled VS2015 and 2017, and CF2019u5 all kinds of ways, uninstalled integrations and installed. VS2013 works fine.One clue is when I tried to a lib path:

>Project : warning PRJ0018 : The following environment variables were not found:

1>$(UniversalCRT_LibraryPath_x86)

1>

0 Kudos
MWind2
New Contributor III
4,698 Views

If I name the directory in "Additional Library Directories" as for example ""C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10150.0\ucrt\x86" the ucrt(d) problem links, but I am a bit concerned that if I were using some default target in a c/cpp file, I would be using the wrong ucrt. So I should always use the evaluated $(UniversalCRT_LibraryPath_x86)  or  $(UniversalCRT_LibraryPath_x64).

0 Kudos
Steve_Lionel
Honored Contributor III
4,698 Views

I have never seen the variable spelled that way. Here's how it shows in my Fortran default library lists:

$(UniversalCRTSdkDir)Lib\$(UCRTVersion)\ucrt\x86

$(UniversalCRTSdkDir)Lib\$(UCRTVersion)\ucrt\x64

The $(UniversalCRTSdkDir) variable is used for the "um" library path.

0 Kudos
MWind2
New Contributor III
4,698 Views

Those came from  cpp console co-project in VS2017. The console fortran project did not show macros(the ones I checked), but would take the evaluations. This is on my 8.1W install VS2017  15.9.16.

0 Kudos
Steve_Lionel
Honored Contributor III
4,698 Views

In VS2017, Select Tools > Options > Intel Compilers and Tools > Visual Fortran > Compilers. On the Win32 tab, click Reset... Then repeat that on the x64 tab.

For whichever platform you're interested in, click the ... next to Libraries. Copy the text shown and paste into a reply.

I'm a bit confused, though - is this a Fortran project or a C++ project? C++ has its own settings.

0 Kudos
MWind2
New Contributor III
4,698 Views

Just two independent basic generated w32 console apps. Reset, restarted VS2017P, deleted "Additional Library Dependencies" from Linker, failed to find ucrtd.lib. Put back in path there and compiled OK. 

Not related but I had part of a TI Code Composer fail on 8.1 because its script wanted to use compress(and /u).

0 Kudos
MWind2
New Contributor III
4,698 Views

Finally figured out what was wrong. A Windows Driver Kit was inserting its path before the suppressed Visual Studio 20XX Windows Kit path and the ucrt(d) was nowhere in its directory.When uninstalled  that path gone from libs and compiler path installed ucrt lib in there. Wrote a short program to write to file pre-link build event environment to find this.

Before:

LIB = C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\lib\x86;C:\Program Files (x86)\Windows Kits\10\Lib\wdf\um\x86;C:\Program Files (x86)\Windows Kits\10\Lib\wdf\ucrt\x86;C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019\windows\compiler\lib\ia32_win;C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019\windows\mkl\lib\ia32_win;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\atlmfc\lib\x86;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86;C:\Program Files (x86)\Windows Kits\8.1\lib


After:

LIB = C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\lib\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\ucrt\x86;C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019\windows\compiler\lib\ia32_win;C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019\windows\mkl\lib\ia32_win;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\atlmfc\lib\x86;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86;C:\Program Files (x86)\Windows Kits\8.1\lib

0 Kudos
Steve_Lionel
Honored Contributor III
4,698 Views

Glad to hear it. Note that there is a "Show Environment in Log" option that will show all environment variables in the build log. Tools > Options > Intel Compilers and Tools > Visual Fortran > General. I always turn this on.

0 Kudos
MWind2
New Contributor III
4,698 Views

Thanks for "Show Environment". and previous links.

0 Kudos
Reply