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

Error #10037: could not find 'lib'

Nathan_Champagne
New Contributor I
7,935 Views

I have a problem creating static libraries in IVF XE 13.1.0.149 with VS 2008. The "Lib" executable could not be found when creating the library. Also, after upgrading to the latest IVF version, a warning message saying that "mspdb80.dll" or "mspdb100.dll" could not be found occurs when compiling the 64-bit version. The error messages are the following:

++++++++++++++++++++++++++++++++++++++++++

32-bit build:

Compiling with Intel(R) Visual Fortran Compiler XE 13.1.0.149 [IA-32]...
ifort /nologo /debug:full /Od /warn:interfaces /module:&quotDebug\\&quot /object:&quotDebug\\&quot /Fd&quotDebug\vc90.pdb&quot /traceback /check:bounds /check:stack /libs:static /threads /dbglibs /c /extfor:f /Qvc9 /Qlocation,link,&quotC:\Program Files (x86)\Microsoft Visual Studio 9.0\Intel Fortran\Microsoft Files\VC\\bin&quot &quotY:\Documents\Matrix\ISIS2_euclid\mv\BlasDotWrap.f&quot
Creating library...
Lib /OUT:&quotDebug/Forlib.lib&quot /NOLOGO &quotDebug\BlasDotWrap.obj&quot
xilib: executing 'lib'
xilib: error #10037: could not find 'lib'
Lib: error spawn_errno_default: spawn('C:\PROGRA~2\Intel\COMPOS~1\bin\ia32\xilink.exe') failed, errno=0


Forlib - 2 error(s), 0 warning(s)

------------------------------------------

64-bit build:

Compiling with Intel(R) Visual Fortran Compiler XE 13.1.0.149 [Intel(R) 64]...
ifort /nologo /debug:full /Od /warn:interfaces /module:&quotx64\Debug\\&quot /object:&quotx64\Debug\\&quot /Fd&quotx64\Debug\vc90.pdb&quot /traceback /check:bounds /check:stack /libs:static /threads /dbglibs /c /extfor:f /Qvc9 /Qlocation,link,&quotC:\Program Files (x86)\Microsoft Visual Studio 9.0\Intel Fortran\Microsoft Files\VC\\bin\amd64&quot &quotY:\Documents\Matrix\ISIS2_euclid\mv\BlasDotWrap.f&quot
warning #31001: The dll (mspdb80.dll or mspdb100.dll) for reading and writing the pdb could not be found on your path. This is usually a configuration error.Compilation will continue using /Z7 instead of /Zi, but expect asimilar error when you link your program.

Creating library...
Lib /OUT:&quotx64\Debug/Forlib.lib&quot /NOLOGO &quotx64\Debug\BlasDotWrap.obj&quot
xilib: executing 'lib'
xilib: error #10037: could not find 'lib'
Lib: error spawn_errno_default: spawn('C:\PROGRA~2\Intel\COMPOS~1\bin\Intel64\xilink.exe') failed, errno=0


Forlib - 2 error(s), 1 warning(s)

++++++++++++++++++++++++++++++++++++++++++

The workaround/solution for these problems is to modify the "Executables:" path in VS 2008 as follows:

1.) Select "Tools->Options"

2.) Expand "Intel Composer XE"

3.) Expand "Visual Fortran"

4.) Select "Compilers"

5.) For 32-bit:
     a.) Under "Platform:", select "Win32"
     b.) Select "..." for "Executables:"
     c.) Add the following:
         "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"
         under
         "$(VCInstallDir)BIN"
     d.) Select "OK"

6.) For 64-bit:
     a.) Under "Platform:", select "x64"
     b.) Select "..." for "Executables:"
     c.) Add the following:
         "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64"
         under
         "$(VCInstallDir)bin\amd64"
     d.) Select "OK"

0 Kudos
37 Replies
Steven_L_Intel1
Employee
4,480 Views

Did this work with Update 1?  Are you using the VS2008 Shell or a regular install of VS2008?

0 Kudos
Nathan_Champagne
New Contributor I
4,480 Views

I first tried to create the libraries on Update 2. Then, I uninstalled Update 2 and reinstalled Update 1, but still couldn't create a library.

I'm using the regular install of VS2008.

0 Kudos
Steven_L_Intel1
Employee
4,480 Views

What is the content of Tools > Options > Intel Composer XE > Visual Fortran > Compiler > Executables (without any changes you made)?

0 Kudos
Nathan_Champagne
New Contributor I
4,480 Views
Win32: $(IFortInstallDir)bin\ia32 $(VSInstallDir)Common7\IDE $(VCInstallDir)BIN $(VSInstallDir)Common7\Tools $(VSInstallDir)Common7\Tools\bin $(FrameworkDir)$(FrameworkVersion) $(WindowsSdkDir)bin $(PATH) x64: $(IFortInstallDir)bin\Intel64 $(VSInstallDir)Common7\ide $(VCInstallDir)bin\amd64 $(VCInstallDir)bin $(VSInstallDir)Common7\Tools $(VSInstallDir)Common7\Tools\bin $(FrameworkDir)$(FrameworkVersion) $(WindowsSdkDir)bin $(PATH)
0 Kudos
Steven_L_Intel1
Employee
4,480 Views

That all looks correct.  Please try logging out and in again and see if the build still fails. If it does, try a reboot. I've seen this fix similar issues.

0 Kudos
Nathan_Champagne
New Contributor I
4,480 Views

Both logging out and in and rebooting didn't work.

0 Kudos
mfinnis
New Contributor III
4,480 Views

Steve, Isn't this the same problem as I had (VS Settings again) . The path in the first post includes \Intel Fortran\Microsoft Files\VC which presumably doesn't exist as the fix was to add the true VS2008 path to VC. Presumably update 2 is configuring the property page macros incorrectly.

0 Kudos
Steven_L_Intel1
Employee
4,480 Views

The path with "Microsoft Files" would be correct if you were using the included VS Shell and Libraries. It would not be correct if using a "retail" version of Visual Studio.

We've had several complaints of this issue with Update 2 and are trying to understand it.

Please do the following.  First, click on the Windows button and type regedit.exe into the search box and press Enter. Browse to the key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC , copy the value of the ProductDir value and paste it into a reply here.

Next, in VS right click on your Fortran project and select Properties. Go to Build Events > Pre-Build Events. In Command Line, type:

echo "%PATH%"

and click OK. Now do a build. Attach a ZIP of the buildlog.htm to a reply here.

0 Kudos
Nathan_Champagne
New Contributor I
4,480 Views
ProductDir Value: c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ There was no build.htm file created during the build, so I put the output in a file and zipped it up.
0 Kudos
Steven_L_Intel1
Employee
4,480 Views

Thanks, that was very helpful. I was looking for buildlog.htm which would be in the Debug folder, but this was ok.

For some reason, the Fortran integration thinks you have the VS2008 Shell rather than the full VS2008. The workaround for now is as you discovered - putting the full path to the VC\BIN folder in the Executables folder list.  I am not sure why some people see this and some don't. I will let the developers know about it - we apologize for the inconvenience.

0 Kudos
Nathan_Champagne
New Contributor I
4,480 Views

Understood. Thanks for your help with the issue.

0 Kudos
Steven_L_Intel1
Employee
4,480 Views

The developers tell me that they think they fixed this in Update 3. They also suggest that if you replace $(VCInstallDir) with $(VSInstallDir) it may help as a workaround.

0 Kudos
Nathan_Champagne
New Contributor I
4,480 Views

No problems after installing Update 3. Thanks.

0 Kudos
Frankcombe__Kim
Beginner
4,480 Views

Steve

Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 14.0.0.103 Build 20130728

Visual Studio Shell 2008

Winteracter 9.2c
Windows 7 x64

I have a similar issue. I am using the Winteracter development environment to build my exes. It gives me the choice of getting the environment settings from VS or my path, I've tried both.

On compilation with the following switches

-c -include:"C:\Program Files (x86)\compiler\WINTER\lib.i64" -Qvec-report0 -check:all -debug:full -traceback -warn:all -heap-arrays

I get the following error

warning #31001: The dll for reading and writing the pdb (for example, mspdb110.dll) could  not be found on your path. This is usually a configuration error. Compilation will continue using /Z7 instead of /Zi, but expect a similar error when you link your program.

However unlike the OP the program links and created an exe which rather than putting up an error message on crashing just shuts down. If I start my exe from a DOS shell then the error gets reported to the dos shell in the same way it would have done to a windows dialogue.

I uninstalled all versions of VS (2005, 2008 & 2010) as well as Composer XE, rebooted, manualy removed all the VS and Intel directories, ran regclean a couple of times, rebooted and reinstalled the full composer download

I don't have mspdb110.dll but do have mspdb100.dll in two places;

c:\Program Files (x86)\Microsoft Visual Studio 10.0\Intel Fortran\Microsoft Files\VC\Bin\amd64\

c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\

The two dlls are different sizes so not identical.

I tried adding the explicit path to the list of pathes in the VS exes as per the OP - no change. I tried changeing the references to VCInstalDir to VSInstallDir - no change. As neither VSInstallDir nor VCInstallDir were declared in my normal environment variables but VSShell2010InstallDir was I tried refeferencing the VSInstallDir lines to VSShell2010InstallDir - no change.

I tried running ifort from a command prompt established from Start\Intel ....\Command Prompt\....64 bit using the switches above. Same error message.

Any tips?

Cheers

Kim

0 Kudos
Steven_L_Intel1
Employee
4,480 Views

Kim, are you using the bundled Visual Studio? You talk about uninstalling and reinstalling VS, but the presence of the Shell folders and environment variables has me a bit puzzled. However, I have seen the installer get confused when installing the shell over remnants of an earlier VS install.

Please uninstall Fortran and the folloiwing additional items, if present:

Microsoft Visual Studio 2010 Shell (Integrated) - ENU
Microsoft Visual Studio 2010 Files for Intel Visual Fortran
Microsoft Visual Studio 2010 Remote Debugger – ENU

Delete the folder Program Files (x86)\Microsoft Visual Studio 10.0

Now if you have a regular VS2010, install that and then Intel Fortran. Otherwise, install the full Intel Fortran (including the Shell.) Let me know what happens.

0 Kudos
Frankcombe__Kim
Beginner
4,480 Views

Steve

Yes I'm using the bundled VS not a stand alone version.

Before my original post I did as you suggest as well as uninstalling VS2005 and 2008 which were leftovers from previous Visual Fortran instalations over the past 3 years. So to be clear - I uninstalled all the versions of VS, and any file groups that were associated with it. Uninstalled Fortran, rebooted and manually removed the residual directories from Program Files (x86). I then did a clean and full install of Fortran Composer XE. The only quirk I noted on installation was that a couple of screens in I got a message to say I had already integrated VF with VS 2010 and that continueing with the instalation would overwrite that integration so presumably there were some relics left in the registry that did not get removed with the uninstalation.

One thing I did not mention is that this has only been a problem for a few months but I think it started before the most recent update i.e I think it was happening during the later stages of version 13, I was just too busy to spend time worrying about it as the exes seemed to work. I had not had them crash and not report a windows format RT error though. It only happens when I compile using the 64 bit compiler/linker. 32 bit appears to be fine.

Cheers

Kim

0 Kudos
Steven_L_Intel1
Employee
4,480 Views

The link-time error should not cause any ill effects at run-time. Are you building from the VS environment or the command line?

0 Kudos
Frankcombe__Kim
Beginner
4,480 Views

Steve

The apparent lack of ill effects is why it has taken me a while to investigate. However the loss of windows run time error messages is enough of an ill effect to start me hunting.

I'm building from the IDE in Winteracter, however I also tried building from the command line using the shell created by the Intel 64 Visual Studio 2010 mode shortcut on the start menu and get the same error message.

I suspect there are other dlls not being found and not reported when I compile in optimised mode. When I compile in debug mode I get the error  31001 message but not when I compile in optimised mode. However both exes now terminate without displaying a windows run time error. If run from a DOS box rather than through Windows the run time error is reported to the DOS box along with the traceback. This is new behaviour as for the past 3-4 years run time errors have been reported to a window allowing the user to see what the problem was. My compiler switches in Winteracter have not changed. Just to reiterate; the problem only occurs when I compile in 64 bit mode, the 32 bit programs still display run time errors in a window.

Cheers

Kim

0 Kudos
Steven_L_Intel1
Employee
4,480 Views

Kim, I don't spot where you told me what the run-time error says.

0 Kudos
Frankcombe__Kim
Beginner
4,150 Views

Steve

I'm using it in the generic sense rather than talking about a specific run time error. The run time errors are either due to logic errors in my programming or bad data. That is not the problem. The problem is that coincident with the occurrance of my #31001 errors on compiling the debug version both the depug and production version exes now just crash if they encounter a run time error whereas they used to pop up a window displaying the error and traceback. If instead of launching the exe in Windows I launch it in a DOS box then run time errors are reported along with the trace back so it looks to me as if the build is not loading the components for intel to address the windows gui directly.

Cheers

Kim

0 Kudos
Reply