Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6704 Discussions

which way is the right way for static linking?

dilg
Beginner
478 Views
Hi all,
I'm using the ipp for quite a while. And nowI want to link the static emerged
libraries into my project. But when I search the documentation of the ipp it
describes many different ways to accomplish this task. So which way is the
right way?
- described in the pdf on the intel-homepage?
- described in the html-file of the documentation of the ipp?
- described int the book of Steward Taylor?
I thinkI get nuts ... :smileysad:
I hope you can give my a sufficient description of which header-files and libs are needed and in which order the libs have to be linked...
thanks in advance and please try to keep your docs of the product consistent
Wolfgang
0 Kudos
5 Replies
Vladimir_Dudnik
Employee
478 Views
Hi Wolfgang,
I believe all descriptions you read were right. There are several way to link with IPP.
The most simpliest on is just to link your applicatipon with ipp*emerged.lib and ipp*merged.lib (you need both of these libs). In this case you need ordinary header files, which comes with IPP, I mean, ippdefs.h, ippcore.h, ipps.h and so on.
Regards,
Vladimir
0 Kudos
dilg
Beginner
478 Views
At the moment I use this way:
add funclist.h, ippmerged.h, ippmerged.c
add function-declarations to funclist.h
include ippmerged.h and ipp.h in my application
use ippStaticInitBest() in my application
link withippsemerged.lib, ippsmerged.lib and ippcorel.lib in this order
it compiles and links without error and works on my development-system (P4 3GHz HT), but it doesn't work on my testsystem (a Pentium M)
Also there is another strange thing:
If I want to use ippCoreSetDenormAreZeros(1) in my Application, I get this warning when compiling ippmerged.c
Code:
..sourceintel ipp 4.1funclist.h(16): warning #147: declaration is incompatible with "IppStatus={enum } __stdcall ippCoreSetDenormAreZeros(int)" (declared at line 98 of "C:ProgrammeIntelIPP41ia32_itaniumincludeippcore.h")
IPPAPI( IppStatus, ippCoreSetDenormAreZeros, ( int value))
The strange thing is that I have pasted this declaration from ippcore.h ...
When I use the ippSetDenormAreZeros(1) theres no problem.
0 Kudos
Vladimir_Dudnik
Employee
478 Views
Right, as I wrote before, you need not any additional *.h or *.c files, if you decided to link with merged/emerged libraries. The only steps you need is to link your application with merged/emerged libraries and call ippStaticInit (or ippStaticInitCpu or ippStaticInitBest).
Regards,
Vladimir
0 Kudos
dilg
Beginner
478 Views
Ok, I tried it the way you recommended and it works. I think there was a different problem why it diddn't work on my notebook... stupid litttle things ... :-(
thanks for your patience and continue the good work with the ipp
cheers
Wolfgang
0 Kudos
Vladimir_Dudnik
Employee
478 Views
Oh, that's great. Never mind about mistakes, did not do mistakes those people who do nothing:)
Regards,
Vladimir

Message Edited by vdudnik on 11-17-2004 07:51 AM

0 Kudos
Reply