Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Location of the Dynamic OpenMP DLL - libiomp5md.dll

Royi
Novice
5,285 Views

Hello,

Following Intel advise we dynmically connected the OpenMP Library.

Hence 'libiomp5md.dll' should be distributed.

The problem is, if I put it in the same directory as the exe, it doesn't work.
Yet if I put 'libiomp5md.dll' in the Path of the OS it does work.

Why is that? Could something be done on compilation so the dll in the directory of the application will be used?

I'm using Windws 7 64 Bit.

Thank You.

0 Kudos
8 Replies
Hubert_H_Intel
Employee
5,285 Views
Upon successful installation of Intel® Studio XE products, the libiomp5md.dll should be in the \Common Files\Intel\Shared Libraries\redist\\compiler redist directory by default from where it is accessible (since included in %PATH%). If you however cannot link libiomp5md.dll check your installation since it may not be correct (run installer again via Control Panel and choose 'Repair') or add the lib path manually to %PATH%. Regards, Hubert
0 Kudos
Royi
Novice
5,285 Views
Hi, I'm not talking on computers where Intel@ Studio XE is installed. I'm talking about targets computers. I have a computer where putting 'libiomp5md.dll' in the same folder as the application won't do. It only worked if I put 'libiomp5md.dll' in one of the path folders. I asked if this behavior has something to do with compiling method. I thought that every application automatically adds its running folder into the path (Only for the run time). Thanks.
0 Kudos
TimP
Honored Contributor III
5,285 Views
The .dll should be found either in the folder with the .exe which requires it, or on PATH. If you install the redistributable library package, that should include advice about setting PATH.
0 Kudos
SergeyKostrov
Valued Contributor II
5,285 Views
>>...It only worked if I put 'libiomp5md.dll' in one of the path folders... >>... The installer of Intel C++ compiler puts 'libiomp5md.dll' in three different folders: . - C:\Program Files\Common Files\Intel\SharedLibraries\Redist\ia32\Compiler - [InstallDir]\Composer XE\Redist\ia32\Compiler - [InstallDir]\Composer XE SP1\Redist\ia32\Compiler . and only first path is set in a 'PATH' environment variable. Could you verify what path is set on your computer? Also, I would try to use MS Depends utility to understand where the problem is.
0 Kudos
Royi
Novice
5,286 Views

tcprince wrote:

The .dll should be found either in the folder with the .exe which requires it, or on PATH. If you install the redistributable library package, that should include advice about setting PATH.

Hi, I don't want to put it in any of the system folders. I'm compiling a Plug In, which means it is not an EXE. Should it be in the host folder (The EXE which runs the Plug In) or in the sub folder of the Plug In?

0 Kudos
SergeyKostrov
Valued Contributor II
5,286 Views
>>...Should it be in the host folder (The EXE which runs the Plug In) or in the sub folder of the Plug In? . If you have an installer for your Plug In than it can copy the 'libiomp5md.dll' to any folder you want.
0 Kudos
Royi
Novice
5,286 Views
The question is where should it be. Could I, at run time, ask for the folder of the Plug In and make the code search for it there? Thanks.
0 Kudos
SergeyKostrov
Valued Contributor II
5,286 Views
>>...The question is where should it be. >>Could I, at run time, ask for the folder of the Plug In and make the code search for it there? . I think Yes. The most important thing is when the OS loads some executable ( exe or dll ) all default dependencies must be resolved. Do you have a simple test-case that reproduces your issues / problems?
0 Kudos
Reply