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

undefined references when linking with libusc.a?

klend
Beginner
386 Views
Hi,

(Using IPP 5.0 under linux with static linking)

I'm building a program that decodes and encodes audio with the speech_codecs library libusc.a as is implemented in the ipp_speechcodecs examples.

When I link this program I get a ton of undefined references like the following:

../ipplibs/ipp_speechcodecs/_build/ivigo.x86/lib/libusc.a(encg729.o)(.text+0x50ff): In function `apiG729Encode':
: undefined reference to `ippsHarmonicFilter_16s_I'
../ipplibs/ipp_speechcodecs/_build/ivigo.x86/lib/libusc.a(encg729.o)(.text+0x5131): In function `apiG729Encode':
: undefined reference to `ippsHarmonicFilter_16s_I'
../ipplibs/ipp_speechcodecs/_build/ivigo.x86/lib/libusc.a(encg729.o)(.text+0x5181): In function `apiG729Encode':
: undefined reference to `ippsGainQuant_G729D_16s'
../ipplibs/ipp_speechcodecs/_build/ivigo.x86/lib/libusc.a(encg729.o)(.text+0x520b): In function `apiG729Encode':
: undefined reference to `ippsAdaptiveCodebookSearch_G729D_16s'
../ipplibs/ipp_speechcodecs/_build/ivigo.x86/lib/libusc.a(encg729.o)(.text+0x53e4): In function `apiG729Encode':
: undefined reference to `ippsLSPToLPC_G729_16s'
../ipplibs/ipp_speechcodecs/_build/ivigo.x86/lib/libusc.a(owng729.o)(.text+0xec2): In function `VoiceActivityDetectInit_G729':
: undefined reference to `ippsZero_16s'
../ipplibs/ipp_speechcodecs/_build/ivigo.x86/lib/libusc.a(owng729.o)(.text+0x108a): In function `VoiceActivityDetect_G729':
: undefined reference to `ippsDotProd_16s32s_Sfs'
../ipplibs/ipp_speechcodecs/_build/ivigo.x86/lib/libusc.a(owng729.o)(.text+0x1249): In function `VoiceActivityDetect_G729':
: undefined reference to `ippsMin_16s'

These undefined references only showed up when I include the libusc.a library, they did not show up before when I mainly was using the video codecs.
I guess this has to do with the link order in my Makefile but I can't solve it. I hope someone here has a suggestion. This is currently my lib order, as you can see, most are ipp libraries:

ST_LIBS= -lusc
-lavi_spl -lmpeg4_spl -lmpeg4_dec -lh263_dec
-lmpeg4_enc -lh263_enc
-laudio_renders -lmedia_buffers
-lcolor_space_converter -lvideo_renders
-lumc_pipeline -lumc -lvm -lvm_plus -lumc_io
-lcommon -lumc_io -lumc -lvm -lvm_plus
-lippdcemerged -lippdcmerged
-lippsemerged -lippsmerged
-lippccemerged -lippccmerged
-lippacemerged -lippacmerged
-lippsremerged -lippsrmerged
-lippscemerged -lippscmerged
-lippvcemerged -lippvcmerged
-lippjemerged -lippjmerged
-lippiemerged -lippimerged
-lippcore
-lpthread -ldl -lm

Thanks for any help.
Regards
Hendrik
0 Kudos
2 Replies
klend
Beginner
386 Views
I solved it myself.
Sorry for the waste of bandwidth.

Just to let other people know, the link order should be the following:
-lippdcemerged -lippdcmerged
-lippccemerged -lippccmerged
-lippacemerged -lippacmerged
-lippsremerged -lippsrmerged
-lippvcemerged -lippvcmerged
-lippiemerged -lippimerged
-lippjemerged -lippjmerged
-lippscemerged -lippscmerged
-lippsemerged -lippsmerged
-lippcore
0 Kudos
Vladimir_Dudnik
Employee
386 Views

Great, I'm glad you found solution.

Vladimir

0 Kudos
Reply