which way is the right way for static linking?

which way is the right way for static linking?

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

6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
vladimir-dudnik (Intel)'s picture

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

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.

vladimir-dudnik (Intel)'s picture

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

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

vladimir-dudnik (Intel)'s picture

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

Login to leave a comment.