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

IPP Linking Issues

Adam_A_1
Beginner
821 Views

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

 

0 Kudos
6 Replies
Sergey_K_Intel
Employee
821 Views

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:

[cpp]

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

[/cpp]

Regards,
Sergey 

0 Kudos
SergeyKostrov
Valued Contributor II
821 Views
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
0 Kudos
Adam_A_1
Beginner
821 Views

 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.

0 Kudos
Sergey_K_Intel
Employee
821 Views

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

 

0 Kudos
SergeyKostrov
Valued Contributor II
821 Views
For example, 32-bit IPP libraries should be in [ Compiler Install Directory ]\Ipp\compiler\lib\ia32.
0 Kudos
adem_metin_cali
Beginner
821 Views

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

0 Kudos
Reply