IPP Linking Issues

IPP Linking Issues

I am getting the following errors when I try to compile in visual studio:

error LNK2001: unresolved external symbol ippsFFTFree_C_32fc

error LNK2001: unresolved external symbol ippsFFTGetBufSize_C_32fc

error LNK2001: unresolved external symbol ippsFFTInitAlloc_C_32fc

I have included the following IPP Libs:

ippcore.lib

ippi.lib

ipps.lib

I have also added

C:\Program Files (x86)\Intel\Composer XE 2013 SP1.083\ipp\lib\intel64

to the Library Directories

 

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Adam,

There is something wrong with function declarations. Please check.

For that, you can add "/E" command line option to the compiler properties, compile the source file (you will get preprocessed source code text) and find, say, ippsFFTFree_C_32fc function declaration. You, probably, use dynamic linking, as I see from library names. The correct declaration should look like:

__declspec( deprecated ( <message> ))__declspec(dllimport) IppStatus __stdcall ippsFFTFree_C_32fc ( IppsFFTSpec_C_32fc* pFFTSpec );

Regards,
Sergey 

Regards, Sergey

What linking model do you use? These functions should have definitions in the following libraries:

ippac_l.lib
ippac_t.lib
ippi_l.lib
ippi_t.lib
ipps.lib
ipps_l.lib
ipps_t.lib

 For the First Sergey:

Got :

> __declspec( deprecated ( "is deprecated. This function is obsolete and will be removed in one of the future IPP releases. Internal memory allocation will not be supported - use Get<Buffer>Size and Init pair for this functionality. Use the following link for details: http://software.intel.com/en-us/articles/intel-ipp-71-deprecated-features/" ))\

1> IppStatus __stdcall ippsFFTFree_C_32fc ( IppsFFTSpec_C_32fc* pFFTSpec );

 

For the Second Sergey:

I don't know where the _l and _t librarys are.

I added ippac.lib and already have Ippi.lib and ipps.lib included.

Currently getting all of my Dll out of the

C:\Program Files (x86)\Intel\Composer XE 2013 SP1.083\ipp\lib\intel64

folder.

Problem is still occuring with new include.

Hi Adam,

Are those names the only, which have not been found by linker? Do you have other IPP function calls, which linker doesn't complain about?

Regards,
Sergey

 

Regards, Sergey

For example, 32-bit IPP libraries should be in [ Compiler Install Directory ]\Ipp\compiler\lib\ia32.

Hi Adam,

According to the your linking method,I think you have to use  ippgen.lib,ippgenemerged.lib,ippdimerged.lib, or ippdimerged_t.lib.In below i write the linking type and right .lib files and send an image to list the required lib files for each linking model :

Dynamic Linking=>ippgen.lib

Static Linking with Dispatching=>ippgenemerged.lib

Static Linking without Dispatching=>ippdimerged.lib and ippdimerged_t.lib

Adem Metin CALI

Attachments: 

Leave a Comment

Please sign in to add a comment. Not a member? Join today