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

Static linking

levicki
Valued Contributor I
498 Views

Again I am facing the same problem I had with OpenMP libarry -- after compiler upgrade (Package ID: w_ccompxe_2013.3.171 w_ccompxe_p_13.1.1.171), even though multi-threaded static IPP libraries are rinstalled on my system I am getting "missing ippcore-7.1.dl" error when I launch compiled application.

1. Haven't I already told Intel compiler engineers how wrong is to break things silently and postpone such problems to application run-time?

2. Haven't I already voiced my protest for removing static OpenMP library?

3. Why do you insist on removing our choice to produce STATICALLY LINKED SINGLE EXECUTABLE and why are you forcing us to deal with DLL hell???

The biggest WTF however is why I can even select a build option which doesn't work?!?

0 Kudos
7 Replies
SergeyKostrov
Valued Contributor II
498 Views
>>...even though multi-threaded static IPP libraries are rinstalled on my system I am getting "missing ippcore-7.1.dl" error >>when I launch compiled application. Igor, A couple of weeks ago we resolved a similar problem with a developer who is using IPP library. The user finally confirmed that it was some problem on his side with Visual Studio project settings and I'll find that thread for you.
0 Kudos
SergeyKostrov
Valued Contributor II
498 Views
Here it is and please take a look: Forum Topic: Static Linking Error - ippcore-7.1 Dependency Web-link: http://software.intel.com/en-us/forums/topic/328164
0 Kudos
levicki
Valued Contributor I
498 Views

Hello Sergey,

In my case this is Visual Studio 2012 Update 2 with mentioned compiler version.

If I disable use of "Use Intel Optimized Headers" then IPP static linking works -- definitely there is a problem with those headers (ippvalarray.h, valarray.h).

I can only guess that since ippvalarray.h includes ipp.h, it does not see /D _IPP_PARALLEL_STATIC defined for some reason. It is either misconfigured file or a compiler bug.

0 Kudos
SergeyKostrov
Valued Contributor II
498 Views
>>... it does not see /D _IPP_PARALLEL_STATIC defined for some reason... Coud you try to undefine the following macros? _IPP_NO_DEFAULT_LIB _IPP_PARALLEL_DYNAMIC _IPP_SEQUENTIAL_STATIC
0 Kudos
SergeyKostrov
Valued Contributor II
498 Views
>>...definitely there is a problem with those headers ( ippvalarray.h, valarray.h ). I've looked at these two header files and I didn't see anything that could break static linking. However, I would try to add #pragma message ( "*** ... Text of Message ... ***" ) directive in the most important IPP headers in order to see which macros are actually defined. Here are two helper macros I often use for diagnostics: ... // Helper Macros to Display a text in a #pragma message directive #define _VALUE2( value ) #value #define _VALUE( value ) _VALUE2( value ) ... Usage is as follows: ... #pragma message ( "# Diagnostics: Environment CODE: " _VALUE( _ENVIRONMENT_CODE ) ) ... Where _ENVIRONMENT_CODE is some macro.
0 Kudos
SergeyKostrov
Valued Contributor II
498 Views
This is a short follow up. Hi Igor, did you resolve the problem?
0 Kudos
levicki
Valued Contributor I
498 Views

No, I did not.

I have upgraded to Composer 2013 Update 4 only to confirm that I still have the same issue as with Update 3. I am working with some Intel engineers on this, will let you know once the results are in.

0 Kudos
Reply