Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Novice
57 Views

Static Linking Error - ippcore-7.1 Dependency

Hello,

I have Intel Composer 2012 XE with Intel IPP 7.1.0.089.

I set in the project properties under Intel Libraries - "Use IPP: Single Threaded Static Library".

Yet after compiling I still get dependency of 'ippcore-7.1' and only 'ippcore-7.1'.

I use Intel Compiler for the compiling process.

How could that be? How could that be resolved? I think it is a bug since I use MS Compiler I don't have that dependency (Same settings).

I use Windows 7 64 Bit.

All paths are defined well.

0 Kudos
35 Replies
Highlighted
Novice
56 Views

Update: If I turn off the option "Use Intel Optimized Headers" (Under Configuration Properties -> C / C++ -> Optimization [Intel C++]) the dependency is removed. Could that be explained? Thanks.
0 Kudos
Highlighted
Moderator
56 Views

if it so, than it looks like the error in VS2010 integration. We need to check it on our side.
0 Kudos
Highlighted
New Contributor I
56 Views

This has not been fixed in Intel Compiler 13.

Settting /Quse-intel-optimized-headers causes a dependency on the IPP "threaded DLL" libraries, no matter what the settings on the project properties such as IPP : Static Libraries. This is a major PITA, especially since there are so many funky things happening in IPP right now ( functions being removed, threaded libraries deprecated etc).

0 Kudos
Highlighted
Valued Contributor II
56 Views

>>If I turn off the option "Use Intel Optimized Headers" (Under Configuration Properties -> C / C++ -> Optimization [Intel C++]) >>the dependency is removed. Could that be explained? It is possible that in some header a #pragma comment(...) directive is used: ... #pragma comment ( lib, "ippcore-7.1.lib" ) ... and that is why it creates the dependency.
0 Kudos
Highlighted
Novice
56 Views

Any update?

0 Kudos
Highlighted
Valued Contributor II
56 Views

>>...Any update? Could you provide a small test project ( for example with a call to one IPP function ) for VS 2005, VS 2008 or VS 2010 that reproduces the problem and I'll take a look at it.
0 Kudos
Highlighted
Valued Contributor II
56 Views

>>...How could that be? How could that be resolved? I think it is a bug since I use MS Compiler I don't have that dependency (Same settings). I completed a verification and I have Not found any issues or problems when my test application was compiled with Intel Parallel Studio XE 2013 Update 2 ( VS 2008 Professional Edition ). Here are screenshoots: [ IPP Dynamic Linking ] ippdynamiclinking.jpg [ IPP Static Linking ] ippstaticlinking.jpg
0 Kudos
Highlighted
Valued Contributor II
56 Views

Please Don't pay attention ( Ignore ) for an error with IESHIMS.DLL. This is an issue with the Windows 7 and it is Not related to IPP.
0 Kudos
Highlighted
Valued Contributor II
56 Views

[ Test-case codes for Dynamic linking ] ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // IppTestApp.cpp // icl.exe /MD /Qipp /Qipp-link:dynamic IppTestApp.cpp /* Note 1: IPP Library Codes: e9 - AVX m7 - SSE3 u8 - SSSE3 y8 - SSE4.1/4.2 Note 2: If Intel C++ compiler option /Qipp is Not used there are Linker errors: LNK2019: unresolved external symbol ippsGetLibVersion referenced in function main LNK1120: 1 unresolved externals Note 3: Compilation: icl.exe /MD /Qipp /Qipp-link:dynamic IppTestApp.cpp Execute: IppTestApp.exe Output: Dynamic linking of IPP library Library Name : ippSP AVX (e9) Library Version : 7.1.1 (r37466) Library Build Date: Sep 24 2012 Dependencies: ippcore-7.1.dll ipps-7.1.dll ippse9-7.1.dll */ #include #include #pragma comment ( lib, "ippcore.lib" ) // When /Qipp-link:dynamic is used int main( void ) { ippInit(); // When /Qipp-link:dynamic is used printf( "Dynamic linking of IPP library\n" ); const IppLibraryVersion *pLibVer = NULL; pLibVer = ::ippsGetLibVersion(); printf( "Library Name : %s\n", pLibVer->Name ); printf( "Library Version : %s\n", pLibVer->Version ); printf( "Library Build Date: %s\n", pLibVer->BuildDate ); return ( int )0; }
0 Kudos
Highlighted
Valued Contributor II
56 Views

[ Test-case codes for Static linking ] ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // icl.exe /MD /Qipp /Qipp-link:static IppTestApp.cpp /* Note 1: IPP Library Codes: e9 - AVX m7 - SSE3 u8 - SSSE3 y8 - SSE4.1/4.2 Note 2: If Intel C++ compiler option /Qipp is Not used there are Linker errors: LNK2019: unresolved external symbol ippsGetLibVersion referenced in function main LNK1120: 1 unresolved externals Note 3: Compilation: icl.exe /MD /Qipp /Qipp-link:static IppTestApp.cpp Execute: IppTestApp.exe Output: Static linking of IPP library Library Name : ippSP AVX (e9) Library Version : 7.1.1 (r37466) Library Build Date: Sep 24 2012 Dependencies: No Any dependencies */ #include #include int main( void ) { ippStaticInit(); // When /Qipp-link:static is used printf( "Static linking of IPP library\n" ); const IppLibraryVersion *pLibVer = NULL; pLibVer = ::ippsGetLibVersion(); printf( "Library Name : %s\n", pLibVer->Name ); printf( "Library Version : %s\n", pLibVer->Version ); printf( "Library Build Date: %s\n", pLibVer->BuildDate ); return ( int )0; }
0 Kudos
Highlighted
Valued Contributor II
56 Views

... #include "stdio.h" #include "ipp.h" ...
0 Kudos
Highlighted
Valued Contributor II
56 Views

>>...Yet after compiling I still get dependency of 'ippcore-7.1' and only 'ippcore-7.1'. >> >>I use Intel Compiler for the compiling process... I finally reproduced your issue with Visual Studio 2008 Professional Edition & Intel C++ compiler XE 2013 Update 2 & IPP 7.1.x. Once again, this is Not a bug and you need to verify that IPP related options are matching to each other (!): VS -> Select Build Components -> Intel IPP -> Use IPP -> Shared DLL and /Qipp /Qipp-link:dynamic See screenshoot: that demonstrates dependencies ( Not matching options ): ippstaticlinking1.jpg
0 Kudos
Highlighted
Valued Contributor II
56 Views

Part 2 >>>>...Yet after compiling I still get dependency of 'ippcore-7.1' and only 'ippcore-7.1'. >>>> >>>>I use Intel Compiler for the compiling process... >> >>I finally reproduced your issue with Visual Studio 2008 Professional Edition & Intel C++ compiler XE 2013 Update 2 & IPP 7.1.x. >>Once again, this is Not a bug and you >>need to verify that IPP related options are matching to each other (!): VS -> Select Build Components -> Intel IPP -> Use IPP -> Single-threaded Static Library and /Qipp /Qipp-link:static See screenshoot: that demonstrates dependencies ( matching options ): ippstaticlinking2.jpg
0 Kudos
Highlighted
Valued Contributor II
56 Views

Part 1 will be shown later since it is moderated... Just in case this is an example of configuration with Dynamic ( Shared ) IPP libraries: VS -> Select Build Components -> Intel IPP -> Use IPP -> Shared DLL and /Qipp /Qipp-link:dynamic
0 Kudos
Highlighted
Valued Contributor II
56 Views

A message to Intel IPP forum moderator: One of my post is still Not Shown and please approve it. Thanks.
0 Kudos
Highlighted
New Contributor I
56 Views

With regards to this thread. 

I have absolutely no issues with static vs. dynamic IPP as long as I do not use the use optimized intel headers option. As long as "use optimized intel headers" is off, the IPP link options works as designed.

0 Kudos
Highlighted
Valued Contributor II
56 Views

>>...I have absolutely no issues with static vs. dynamic IPP as long as I do not use the use optimized intel headers option... What happens when you turn that option On?
0 Kudos
Highlighted
New Contributor I
56 Views

If I turn that option on, then the final EXE will depend on the dynamic IPP DLLs no matter what the IPP linking option -  assuming the code contains some mathematical function that is diverted to IPP via some header magic in the intel math headers.

0 Kudos
Highlighted
Valued Contributor II
56 Views

>>...If I turn that option on, then the final EXE will depend on the dynamic IPP DLLs no matter what the IPP linking option... It is Not clear for me how IPP headers could be related to Intel Optimized headers ( the latter ones are located in ( InstallDir )\Composer XE 20xx\Compiler\Include folder ).
0 Kudos