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

libiomp5mt.lib -- I don't like where this is going...

levicki
Valued Contributor I
554 Views
I see that Intel has decided to remove the static version of OpenMP library in Parallel Studio 2013.

I am aware that there are issues with static linking and multiple initializations, but sometimes it is necessary to use static linking and produce standalone executable -- there are completely legit scenarios where static linking does not cause any problems.

I am hereby voicing my strongest possible dislike for this decision, and I sincerely hope responsible persons for that decision will reconsider and reverse the decision -- even shipping the library as a separate download is better than not having an option to produce fully standalone executable anymore.
0 Kudos
5 Replies
levicki
Valued Contributor I
554 Views
BUMP BUMP BUMP
0 Kudos
JenniferJ
Moderator
554 Views

In the 12.x Release notes, it's noted that the Openmp static lib might be removed in the future releases. it is why that it is removed in this 13.0 release.

It does cause a lot of issues when the app uses MKL libs and also contains code with OpenMP. If the MKL lib is older or the compiler is older, there is imcompatible issue.
The decision on removing it is a cautious one.

Well, we may ask to add the file back, but I'm not sure if it will be. Let's see.

Jennifer

0 Kudos
levicki
Valued Contributor I
554 Views
As I said, I am aware of issues, but simply removing it completely is bad.
At least leave it as an optional download.
0 Kudos
zheru_q_
Beginner
554 Views

I'm also quite annoyed by the removal!

Why don't  provide this as a optional download?

0 Kudos
jimdempseyatthecove
Honored Contributor III
554 Views

The dynamic Intel OpenMP library may also call upon additional dynamic libraries, to what extent do you want the static libraries (and from whom)?

There was a post on stackoverflow where a person got around this by making self extracting archive (inclusive of the DLLs) and ran the archive as opposed to the included application. That is somewhat of a kludge, but it may work for you.

An alternative might be to package the DLL as a resource, then at program start, copy the resource to a temporary file then use LoadLibrary or LoadLibraryEx to load it. Alternatively there is MemoryModule (https://github.com/fancycode/MemoryModule) that can be used to directly load the DLL from memory.

Jim Dempsey

0 Kudos
Reply