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

Problem with Redistributable Files

dabradley
Beginner
920 Views

I am using VisualStudio2013Pro and Intel(R) Visual Fortran Composer XE 2013 SP1 Update 3 Integration for Microsoft Visual Studio* 2013, 14.0.0092.12.

After compiling/linking in release mode, then sending the executable file to a user, when he runs it, the error message, that libifcoremd.dll is missing, is displayed.

I either need to: (1) link that dll file so that the executable file contains it (preferred, if possible), or (2) have that dll file available to him.  I cannot find a way to do (1); if you know of a way, please respond.  As far as (2), I have tried sending him the dll file and having the user to place it in the same folder as the program executable file.  Then, when he runs the program, it stops unexpectedly.

So, after some investigation, and finding almost no documentation, on (2) above, I am asking for your help.  What I really need is a tutorial on how to do this.  Some hints exist on the Internet that, along with the Intel Fortran, an executable file or msi file exists for installing, on a user's computer, all the redistributable files.  All I find there, however, besides all those dll files, is a msm file which could possibly be used for this purpose (file structure below).  I do have InstallShield2013, as well, and I could possibly use this msm file, but no instructions are there to do so.

Surely someone else has experienced this same dilemma.  Please help.

C:\Program Files (x86)\Intel\Composer XE 2013 SP1\redist\intel64\compiler

06/17/2014  11:05 AM    <DIR>          1033
06/17/2014  11:05 AM    <DIR>          1041
04/23/2014  04:36 AM           305,808 cilkrts20.dll
04/23/2014  04:36 AM           265,216 cilkrts20.pdb
04/23/2014  08:34 AM           429,496 ifdlg100.dll
06/17/2014  11:04 AM    <DIR>          irml
06/17/2014  11:04 AM    <DIR>          irml_c
04/23/2014  08:34 AM           212,920 libicaf.dll
04/23/2014  08:34 AM         1,482,680 libifcoremd.dll
04/23/2014  08:34 AM         1,482,680 libifcoremdd.dll
04/23/2014  08:34 AM         1,470,904 libifcorert.dll
04/23/2014  08:34 AM         1,470,904 libifcorertd.dll
04/23/2014  08:34 AM           307,128 libifportmd.dll
04/23/2014  08:34 AM         1,075,640 libiomp5md.dll
04/23/2014  04:37 AM           592,896 libiomp5md.pdb
04/23/2014  08:34 AM            79,800 libiompstubs5md.dll
04/23/2014  08:34 AM         3,438,008 libmmd.dll
04/23/2014  08:34 AM         3,580,344 libmmdd.dll
04/23/2014  08:34 AM           467,384 liboffload.dll
04/23/2014  08:34 AM         9,050,040 svml_dispmd.dll
04/25/2014  06:47 PM        19,910,656 w_fcompxe_redist_intel64_2013_sp1.3.202.msm

0 Kudos
3 Replies
Steven_L_Intel1
Employee
920 Views

To link the libraries into the executable so that no DLL is needed, change the project property Fortran > Libraries > Runtime library to "Multithreaded".

We provide an executable installer for the redistributable - your user just needs to run the EXE. However, the Microsoft Visual C++ redistributables would also be needed. For your purpose, linking to the static libraries as I show above is probably best.

0 Kudos
Cardin_P_
Beginner
920 Views

na execução do microsoft Visual C++ ele pode corrigir as DLL que você precisa, mesmo assim se você conseguir uma copia da instalação de um segundo computador você pode copiar as DLL funcional e substituir as suas, pronto o sistema não vai mais da bugg.

0 Kudos
Steven_L_Intel1
Employee
920 Views

Here's Google Translate's version of Cardin's post: "in the implementation of microsoft Visual C ++ he can fix the DLL you need, anyway if you get a copy of the installation of a second computer you can copy the DLL functional and replace its ready the system is no longer the bugg ."

Yes, you can copy ifcoremd,dll, but you'll also possibly need one of the MSVC redistributable installs. While use of the DLL libraries is in general preferable, it sounds as if this case would work fine for static linking. (An exception would be if the program uses OpenMP or coarrays.)

0 Kudos
Reply