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

Using Free MS Compiler kit w/ IVF?

matthewcroberts
Principiante
943 Visualizações
I know that there's been a lot of criticism of IVF because it requires MSVC++ (or whatever it is...I haven't gotten my copy yet) which represents an added cost. However, over the weekend, I noticed that MS now has a free download of the C++ compiler, linker & runtime libs. (available at http://msdn.microsoft.com/visualc/vctoolkit2003/). Can this be used to provide command-line functionalilty for IVF w/o the Visual Studio product?
Matt.
0 Kudos
7 Respostas
Steven_L_Intel1
Funcionário
943 Visualizações
We just learned about this on Monday and I've been investigating. The "toolkit" is missing some things you may want, such as a lbrarian and resource compilerand any of the DLL import libraries (such as for Win32 APIs, though you could download the Platform SDK and get those.)
The Intel Fortran install won't recognize that the toolkit is installed (it doesn't set any registry values) but will allow the install to continue. It looks as if all you would have to do is edit the ifort.cfg file in the Intel Fortran BIN folder to specify the path to the MS linker (and run the VCVARS32.BAT it provides), but I'm still playing with it.
Note that the license agreement for this toolkit does not allow you to distribute applications you build with it to others - it is for "internal, evaluation and demonstration" use. It could be a good solution for those evaluating Intel Fortran, if you can live with the limitations.
I'll post more when I've finished my testing.
Steven_L_Intel1
Funcionário
943 Visualizações
Less and less promising.... When I link a program, the linker wants UUID.LIB, not supplied. For my "Hello World" program, I could get away with adding /NODEFAULTLIB:UUID.LIB, but maybe some other programs would not be so lucky. I don't know why UUID.LIB is requested, though - I'll ask.
You cannot link to the IVF DLL libraries with this toolkit, as it requires the MSVC DLL import libraries.
Steven_L_Intel1
Funcionário
943 Visualizações

Here is what I've found:

The toolkit contains the following components of interest:

  • Optimizing Visual C++ compiler (cl.exe) - the same one as is in Visual Studio.NET Professional
  • Linker (link.exe)
  • Static Visual C++ run-time libraries (libc, libcp)
  • Win32 API import library kernel32.lib

It does NOT contain:

  • Visual C++ DLL import libraries
  • Win32 API import libraries other than kernel32 (though these can be obtained from the Platform SDK)
  • Librarian
  • Resource Compiler
  • Debugger
  • IDE

In order to use this with Intel Visual Fortran, follow these steps:

  • Install the toolkit
  • Install Intel Visual Fortran. The install will warn you that Visual C++ is not found; select the option to continue anyway
  • After installation completes, edit the following two files found in the Intel Fortran IA32BIN folder:
    • ifort.cfg - Replace the path in the line beginning with "-Qlocation,link" to be the BIN folder of the toolkit, and add the line
      -Qoption,link,/nodefaultlib:uuid.lib
      Ifortvars.bat - Replace the path in the @call line to call the vcvars32.bat file in the Toolkit folder

You should now be able to build statically linked executables. You cannot build DLLs nor link against the DLL libraries. You also cannot build static libraries, since there is no librarian. The Intel Debugger (idb) can be used for debugging.

At first, I thought that there was a restrictive EULA attached to this toolkit which forbade using it to develop software for redistribution, but a comparison with a retail EULA shows that is not the case.

The Toolkit is not an adequate prerequiste for Intel Visual Fortran, but if you can live with the limitations, you may find it useful.

eddie_breeveld
Principiante
943 Visualizações

That's brilliant. But can the toolkit be packaged onto the Intel Fortran CD? Or can we package it onto our own CD? Can the platform SDK also be packaged in this way?

All the best,

Steven_L_Intel1
Funcionário
943 Visualizações
No, no and no. Microsoft doesn't permit any of those actions.
TimP
Colaborador honorário III
943 Visualizações
I noticed that the CVF installation contains a uuid.lib, and others which are being required by newer IVF compilers. Adding the VC98lib directory to the library path appears to be taking care of this better, so far, than the nodefaultlib specifier.

I've been finding that Windows Fortran updates have not been applying cleanly, either with a Visual Studio 2003 or this free Toolkit installation. For the patches, I've found I had to re-create the temporary installation directories of the base compiler, and do a Repair, leaving all temporary files in place when following up by applying the patch. For complete compilers, the installer has failed to tell me to remove the earlier compiler when that appears necessary.
Steven_L_Intel1
Funcionário
943 Visualizações
CVF includes all of the MSVC6 libraries, including uuid.lib. That can be had from the Platform SDK if desired, but I didn't want to complicate things.

I have seen other complaints about the patches wanting to see the expanded kit in the temp folder - I don't know that it has any bearing on whether you used the MS toolkit or not. The issue is being investigated.
Responder