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

Unable to run '<Microsoft VC++ Dir>\Bin'

lucaslehmer
Beginner
3,863 Views
Hello all,

I'm new to this forum and have just installed the trial-version of Intel's Visual Fortran Compiler for Windows. (I'm running Win-XP Prof.)

However, after my first compilation, from DOS mode (command: ifort test.f90), I got the strange message

ifort: Unable to run '\Bin'

So, the compilation itself seems to be ok, and a file test.obj is created, but no sign of a file test.exe (as I was hoping...)

Since the error message itself doen't tell me much, I am asking here what I am doing wrong.
I anyone can tell me what to do, I would be much obliged!

Regards, Lucas
0 Kudos
32 Replies
Steven_L_Intel1
Employee
2,619 Views
You need to have first installed the prerequisite Microsoft development product - one of:
  • Visual Studio 2005 Standard Edition or higher
  • Visual Studio.NET 2002 or 2003
  • Visual C++.NET 2002 or 2003, Standard Edition
If you are going to be using command line only, then you can also use the free Microsoft Visual C++ 2005 Express Edition.

Whichever you choose must be installed before installing Intel Fortran. Please read the Installation Guide (INSTALL.htm) for further details.

So after installing the MS product, uninstall and reinstall Intel Visual Fortran.
0 Kudos
lucaslehmer
Beginner
2,619 Views
Indeed Steve, I plan (at least for now) to only use the command line, so I downloaded the free Microsoft C++ 2005 Express Eition (vsetup.exe).

But now I ran into a different problem when trying to install this thing.
The installation only gets as far as "Setup is loading installation components. This may take a minute or two". It displays about 80% of the blue bars, then stops and hangs!
I cannot even cancel the process in TaskManager, so I had to reboot.

I hope this new problem also sounds familiar!
Many thanks.
0 Kudos
TimP
Honored Contributor III
2,619 Views
I'm not clear on whether you heeded Steve's advice (uninstall, e.g. using the Add/Remove menu, or the uninstall option in the unpacked ifort installer files) before first installing VS express, then Intel Fortran. If you did do that, and you still don't get correct installed ifortvars.bat and ifort.cfg files, you can edit them manually, after telling the ifort installation to continue even when it doesn't ask you to show it the VS installation. Those files must be consistent with vcvarsxx.bat, for example. (32-bit ifortvars.bat and ifort.cfg consistent with vcvars32.bat, and 64-bit consistent with the Microsoft 64-bit release compile environment window). Automatic installation, at best, will work only when following the 'yellow brick road."
0 Kudos
lucaslehmer
Beginner
2,619 Views
Well guys, I still have problems, but I think I am 2 steps further.

First, the problem of installing "Visual C++ 2005 Express Edition" has been solved by using the so-called "manual procedure".
More info about this : http://msdn.microsoft.com/vstudio/express/support/install/

Then I un-installed and re-installed Fortran again, and recompiled test.f90.
This time I got the error message (during execution of link.exe):

"This application has failed to start because mspdb80.dll was not found. Re-installing the application may fix this problem".

Since the mspdb80 file WAS indeed present on my system in the folder C:Program FilesMicrosoft Visual Studio 8Common7IDE, I copied this file to the directory of link.exe, namely C:Program FilesMicrosoft Visual Studio 8VCin.
Not the most elegant solution, I admit, but it apparently worked.

Anyway the following compilation try resulted in yet another error message:

"LINK : fatal error LNK1104: cannot open file LIBCMT.lib".

Yet, also this file is present on my system, in folder C:Program FilesMicrosoft Visual Studio 8VClib.
This time the trick of copying this file to the bin-folder doesn't work however...

Any more suggestions?
What am I doing wrong?
Do I have to modify some configuration settings or files?

Regards, Lucas.
0 Kudos
Steven_L_Intel1
Employee
2,619 Views
Lucas, is the problem you're having with the VC installer or the Intel Fortran installer? It isn't an issue I am familiar with.

I suggest that you check for adequate disk space and clean out your Temp folder (whatever the environment variable TEMP points to) and try again.
0 Kudos
lucaslehmer
Beginner
2,619 Views
Hello Steve,

The problems have finally been solved!
The last error message I got (
"LINK : fatal error LNK1104: cannot open file LIBCMT.lib".) could be resolved by modifying the LIB environment parameter in Windows.
Why this wasn't done automatically at Fortran and VC++ installation time still puzzles me but hey, who is complaining here? The thing works!

The only frustrating issue at this time is that my execution times in Intel's Fortran are about the same as those when running Salford's FTN-95.
To be honest I had expected a gain of about 25 to 50%, as was mentioned by some benchmarking websites.
Is this "normal"? By the way I used the /O3 compiler option to speed up things as much as possible, but without success so far.

Meanwhile, thanks for the support!
Lucas.
0 Kudos
TimP
Honored Contributor III
2,619 Views

The most likely ways for ifort to improve performance over Salford would be with vectorization (-QxW et al.) or parallelization (-Qparallel or OpenMP), if those are applicable to your example. -O3 is most likely to show speedup when used together with vectorization for nested loops. Are we to assume your example is or is not of that character?
0 Kudos
Steven_L_Intel1
Employee
2,619 Views
You had said earlier that you used a "manual install" method. If Visual C++ was properly installed, then the Fortran install should have found it. But please also note that if you are using Visual C++ Express Edition, you do not have access to Fortran debugging in the MS debugger - you should use the Intel Debugger instead.

Look at C:Program FilesIntelCompilerFortran9.1IA32Binifortvars.bat and look to see if there is a line that looks like this:

@call "C:Program FilesMicrosoft Visual Studio 8VCBinVcvars32.bat"

This is what sets up the environment variables. Be sure that you are using the "Build Environment for IA-32 Applications" shortcut to start your build session.

What kind of processor does your system have? What is your ifort command line? I would normally expect a lot better code than Salford, but if your application is not CPU-bound (if it is dominated by I/O or memory access, for example), the results might be closer. Try one of the /Qx switches such as /QxP if you have a current Pentium 4/Pentium D.

0 Kudos
Emilio_P_
Beginner
2,619 Views

Until fairly recently I was using the Visual C++ Express Edition, so I'm very familiar with this problem. :-) The Intel Fortran installer does not recognize the Express Editions, so it does not insert the correct paths in ifortvars.bat or ifort.cfg, so you have to edit them to replace with the correct path in both files.

To add to the fun, both these files are overwritten by every update, so it is probably a good idea to save copies in another directory.

0 Kudos
Steven_L_Intel1
Employee
2,619 Views
The Intel Fortran installer does recognize the VC++ 2005 Express Edition in versions as of 9.0.028 and later.
0 Kudos
Emilio_P_
Beginner
2,619 Views
That's nice to know. I assume VC++ 2003 Express Edition was not supported by earlier versions, or did I sleep through that as well? :-)
0 Kudos
Steven_L_Intel1
Employee
2,619 Views
There was no "Express Edition" prior to VC2005. There was a Standard Edition of VC++ 2002 and 2003, and that was supported to provide full functionality. There was also a "Visual C++.NET 2003 Toolkit" which had command-line tools only. It was not supported, but could be made to work from the command line.

If you use VC 2005 Express Edition, you also need the free Microsoft Platform SDK installed as detailed in the Installation Guide.
0 Kudos
lucaslehmer
Beginner
2,619 Views
Hi Steve,

After the installation problems, it took a while to build a kind of reliable benchmarking program to compare Salford's and Intel's execution times.

My processor is a 3-year old Pentium-4 2.8 Ghz (mounted on an Asus P4C800 motherboard).
And yes, the testprogram is VERY cpu-bounded.

In the test cases Salford's times are on average 82 seconds, while Intel's times are just above 90 seconds (compiled without options, so he command line looked like "ifort TEST.f90").

When adding the option /QxN (and later also /O3) the execution times are about 10% better (a drop to 82 seconds), but even then Intel cannot beat Salford.
I am very puzzeled why (not)...

And another thing: Salford compiles my source code to an 94 KB executable, Intel on the other hand builds a 502 KB executable. I had hoped that the extra 400% (!) of code would contain some optimizations, but so far I haven't seem them.

0 Kudos
Steven_L_Intel1
Employee
2,619 Views
What command line are you using?

The 502KB includes code from the static run-time library. Your actual object code is much smaller.

I'd appreciate it if you would send the test program and the compile line used, along with your notes on performance, to Intel Premier Support so that we can investigate.
0 Kudos
Intel_C_Intel
Employee
2,619 Views
Hi, I have the same exact problem as described in this thread. Moreover, IVF doesn't recognize C++ 2005 Express Edition. Then when you try to run it can't find the linker. If you point it to the linker, it then can't find the libraries, etc. I have one other problem though, I'm running Windows x64. Some of the things it can't find, don't seem to be there. Only in the Platform SDK folder. What I need to know is when you are running Windows x64 can you target 32-bit processors without purchasing the full blown C++. It seems like the answer is no, but I want to make sure. I have been trying for months to get answers through Intel Premier Support, but they have been of no use whatsoever.
0 Kudos
Steven_L_Intel1
Employee
2,619 Views
Anthony,

What version of IVF are you using? Recognition of VC2005 Express started with 9.0.028. Please tell me the Premier Support issue numbers and I'll investigate - the problem described in this thread is one we have lots of experience helping users with so I'd like to understand what went wrong.

The Platform SDK does not provide what is needed to build IA-32 applications. You need one of the Visual C++/Visual Studio products for that. I have not tried installing VC2005 Express on x64 so I don't know if it fails to install or not. But if it does install, then IVF should work with it for building IA-32 applications. You can, of course, build x64 applications using the PSDK.
0 Kudos
Intel_C_Intel
Employee
2,619 Views

Hi,

Thank you very much. I am so fusturated. I needed to swith to Windows x64 due to the memory needs of my FEA work. Unfortunately, I can't compile 32-bit executables anymore. Only 64-bit, which no one else in my company can use.

I support issue number is 386398. I think the problem is with the linker that comes with C++ Express edition. But I don't know for sure. Some of the files the linker looks for are not there. However, they are there for the 64-bit version.

I get the feeling that when you are using x64 IVF can not compile 32-bit executables unless you buy C++. The free version may not have all the right stuff. But I don't know Microsoft's products enough to know that. In fact I don't know them at all.

My biggest frustration at this point is that IVF says it can compile Itanium, EMT64, and x86 code, but because it relies on Microsoft's linker, it really can't do any of that on its own. My hope is that you guys can figure out something so that we can just install IVF and that's it. I only want to compile using the command prompt. I don't know C++ and don't want to know it. I know a lot of users probably like and need the integration. But maybe you guys can sell a seperate version that only runs from the command prompt and doesn't require anyone to install anything else.

Anyways, I have tried everything that I possibly can. I have tried all the install options and change pointers and what not, but I can't get it to work.

Anthony

0 Kudos
Intel_C_Intel
Employee
2,619 Views
Sorry, I forgot to say that I have tried version 025, 028, and 029. Version 028 would not allow me to license it for some reasaon. But I can install and run 025 and 029. However, I can only compile EMT64 executables, whereas, I need to compile x86 executables, so others in my company can use them.
0 Kudos
Steven_L_Intel1
Employee
2,619 Views
Does Visual C++ 2005 Express Edition install for you? Once installed, reinstall the Intel Fortran compiler (the IA-32 version). Do a Start>Programs>Intel Software Development Tools>Intel Fortran Compiler 9.1>Build Environment for IA-32 Applications. Post the output.
0 Kudos
Intel_C_Intel
Employee
2,444 Views

Hi Steve,

I can install everything. I have uninstalled and reinstalled everything several times. This time I registered C++ Express Edition, whereas before I did not. I think this had a lot to do with IVF not being able to properly detect the installation. If you chose only to install the command line of C++ Express Edition, you don't have to register it. That was my preferred method, but like I said, it seemed to cause IVF problems if you do it that way.

Anyways, I just finished reinstalling everything again and have attached the image you asked for. The error is different now that I have registered C++. Previously, I got all the same errors that were posted in this thread.

(Virus scan in progress ...)
0 Kudos
Reply