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

How do you compile a Fortran dll so that Intel dll's are not required to run

wmiensoftinc_com
Beginner
1,436 Views

Itwo weeks ago, Ibought Intel Fortran 11 to replace MS Powerstation Fortran 4. I need to compile a Fortran dll. My intended use for this dll is to call it from a Windows program written in Delphi. The Fortran dll is basically an integer function, taking an input number to validate proper use of the dll and returning an error condition number. Once the Fortran dll starts, it reads a text data file and generates four text output files. The dll has roughly 100,000 lines of coding in about 60 source files. Conversion of the Fortran into Delphi or C isn't practical. The Delphi exe calls additional dll's for graphics and Robohelp.

The problem I face is that the Intel Fortran requires 11 additional Intel dll's to run.The Delphi exe can call the Fortran dlljust fine on my PC (which has the Intel Fortran 11 installed), but I need to be able to distribute the calling exe and Fortran dll without the additional baggage if possible.

The additional dll's required by the Intel dll are: inconsol, ifwin, libifcoremd, libirc, libmmd, svml_disp, kernel32, msvcrt, oldnames, gdi32, and user32.

The Intel command line is:

/nologo /module:"Release\" /object:"Release\" /libs:dll /threads /winapp /4Yportlib /c

Is there an easy fix to this problem?

All help will be greatly appreciated,

Bill Isenhower, wmi@ensoftinc.com

0 Kudos
2 Replies
Steven_L_Intel1
Employee
1,436 Views

Use /libs:static instead of /libs:dll. In Visual Studio, this is property Fortran > Libraries > Use Run-Time Library > Multithreaded.

Some of those "Intel DLL" names you mention are not DLLs or are not Intel's. The only ones which are Intel DLLs are libifcoremd, libmmd and svml_disp (would be svml_dispmd)

0 Kudos
wmiensoftinc_com
Beginner
1,436 Views

Use /libs:static instead of /libs:dll. In Visual Studio, this is property Fortran > Libraries > Use Run-Time Library > Multithreaded.

Some of those "Intel DLL" names you mention are not DLLs or are not Intel's. The only ones which are Intel DLLs are libifcoremd, libmmd and svml_disp (would be svml_dispmd)


Steve,

Thank you for your quick reply. My dll is now working.

Bill

0 Kudos
Reply