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

IPP Linking Issues

Adam_A_1
Начинающий
2 785Просмотр.

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 баллов
6 Ответы
Sergey_K_Intel
Сотрудник
2 785Просмотр.

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 

SergeyKostrov
Ценный участник II
2 785Просмотр.
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
Adam_A_1
Начинающий
2 786Просмотр.

 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.

Sergey_K_Intel
Сотрудник
2 785Просмотр.

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

 

SergeyKostrov
Ценный участник II
2 785Просмотр.
For example, 32-bit IPP libraries should be in [ Compiler Install Directory ]\Ipp\compiler\lib\ia32.
adem_metin_cali
Начинающий
2 785Просмотр.

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

Ответить