IPP 8 legacy code sample link issue

IPP 8 legacy code sample link issue

Dear all

I am trying to build a linux speech codec program based on intel IPP 8 code samples.

My code is quite simple and only include "usc.h" and "usc_objects_decl.h"

The compile is successful, but when trying to do the link, I can't find the libspeech.a library

My question is how to static link my code with intel speech codec samples library?

I had stuck on this issue for several days, and not clues to complete the linkage job, and the code is very very important to me.

Thank you very much, Sir!

I built code samples followed by below steps:


! winscp copy l_ipp_8.0.0.061.tgz to /tmp

cd /tmp
tar -zxvf l_ipp_8.0.0.061.tgz
cd l_ipp_8.0.0.061

setsebool allow_execmod on
setsebool allow_execstack on


setsebool allow_execmod off
setsebool allow_execstack off

source /opt/intel/ipp/bin/ippvars.sh intel64
!source /opt/intel/ipp/bin/ippvars.sh ia32

! winscp copy cmake- to /tmp
cd /tmp
tar -zxvf cmake-
cd cmake-
make install

!winscp copy l_ipp_8.0.0.005_legacy_samples.tgz to /tmp
cd /tmp
tar -zxvf l_ipp_8.0.0.005_legacy_samples.tgz
tar -zxvf l_ipp-speech-codecs_p_8.0.0.005.tgz

cd /tmp/ipp-samples.
./build.sh --sample=speech-codecs --arch=intel64 --ws=make --ipp=static --conf=release --clean
cd /tmp/ipp-samples.


[root@centos release]# ls -la
total 1416
drwxr-xr-x 2 root root   4096 Nov 21 03:59 .
drwxr-xr-x 3 root root   4096 Nov 21 03:57 ..
-rw-r--r-- 1 root root   4078 Nov 21 03:59 libspeech_alc.a
-rw-r--r-- 1 root root  91128 Nov 21 03:58 libspeech_amrwb.a
-rw-r--r-- 1 root root 261380 Nov 21 03:59 libspeech_amrwbe.a
-rw-r--r-- 1 root root   5470 Nov 21 03:58 libspeech_common.a
-rw-r--r-- 1 root root  76976 Nov 21 03:58 libspeech_ec.a
-rw-r--r-- 1 root root  20584 Nov 21 03:58 libspeech_g711.a
-rw-r--r-- 1 root root  36342 Nov 21 03:59 libspeech_g722.1.a
-rw-r--r-- 1 root root  26746 Nov 21 03:58 libspeech_g722.a
-rw-r--r-- 1 root root  53444 Nov 21 03:58 libspeech_g723.1.a
-rw-r--r-- 1 root root   8742 Nov 21 03:59 libspeech_g726.a
-rw-r--r-- 1 root root  57260 Nov 21 03:59 libspeech_g728.a
-rw-r--r-- 1 root root 116454 Nov 21 03:59 libspeech_g729.1.a
-rw-r--r-- 1 root root 107676 Nov 21 03:59 libspeech_g729fp.a
-rw-r--r-- 1 root root 118262 Nov 21 03:59 libspeech_g729i.a
-rw-r--r-- 1 root root 101732 Nov 21 03:59 libspeech_gsmamr.a
-rw-r--r-- 1 root root  37824 Nov 21 03:59 libspeech_gsmfr.a
-rw-r--r-- 1 root root   9070 Nov 21 03:59 libspeech_nr.a
-rw-r--r-- 1 root root  20076 Nov 21 03:58 libspeech_td.a
-rw-r--r-- 1 root root  42288 Nov 21 03:58 libspeech_vad.a
-rw-r--r-- 1 root root  74002 Nov 21 03:59 libvm.a

[root@centos release]# uname -a
Linux centos 2.6.18-371.el5 #1 SMP Tue Oct 1 08:35:08 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux



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

Hi Mark,

How do you link your application? Could you show the command line?



Hi Mark,

You can link the static library as the below two test cases. .  The libspeech.a is from old versions. ( archive all of *.a into speech.a).  The 8.0 use seperate codec, thus if you need one kind of codec (i.e g729fp), you can just link one libspeech_g729fp.a.

Best Regards,

/opt/intel/composer_xe_2011_sp1.11.339/bin/intel64/icpc -Wall -O2 -fPIC  -fopenmp -i-static /home/yhu5/ipp-samples/speech-codecs/_bin/intel64_icc121/obj/usc_speech_codec/formats.o /home/yhu5/ipp-samples/speech-codecs/_bin/intel64_icc121/obj/usc_speech_codec/loadcodec.o /home/yhu5/ipp-samples/speech-codecs/_bin/intel64_icc121/obj/usc_speech_codec/player.o /home/yhu5/ipp-samples/speech-codecs/_bin/intel64_icc121/obj/usc_speech_codec/timing.o /home/yhu5/ipp-samples/speech-codecs/_bin/intel64_icc121/obj/usc_speech_codec/usccodec.o /home/yhu5/ipp-samples/speech-codecs/_bin/intel64_icc121/obj/usc_speech_codec/util.o /home/yhu5/ipp-samples/speech-codecs/_bin/intel64_icc121/obj/usc_speech_codec/wavfile.o -o /home/yhu5/ipp-samples/speech-codecs/_bin/intel64_icc121/bin/usc_speech_codec -L/opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64 -L/home/yhu5/ipp-samples/speech-codecs/_bin/intel64_icc121/lib -lspeech -lcore -lippsc -lipps -lippcore -L/opt/intel/composer_xe_2011_sp1.10.319/ipp/../compiler/lib/intel64 -liomp5 -lpthread -lc -lm


/usr/bin/cc  -m64  -O2 -Wall    CMakeFiles/usc_nr.dir/src/nr_exmp.c.o CMakeFiles/usc_nr.dir/src/util.c.o  -o ../../__bin/release/usc_nr  -L/opt/intel/composer_xe_2013_sp1.1.106/ipp/../compiler/lib/intel64 -rdynamic -Xlinker --start-group ../../__lib/release/libvm.a ../../__lib/release/libspeech_common.a ../../__lib/release/libspeech_amrwb.a ../../__lib/release/libspeech_g723.1.a ../../__lib/release/libspeech_g729i.a ../../__lib/release/libspeech_g729fp.a ../../__lib/release/libspeech_vad.a ../../__lib/release/libspeech_alc.a ../../__lib/release/libspeech_nr.a -Xlinker -Bstatic -lippcore -lipps -lippsc -Xlinker -Bdynamic -Xlinker --end-group -lsvml -limf -lirc -lpthread

Thank you very much, Sergey and Ying!


Hi Ying


I know how to link now.


Hi Mark,

It can be a workaround. There should be no object files with the same names, so this extract/combine operation should be safe.

Otherwise, you need to experiment with command line to linker "g++ -static -o ...", specifying the required libraries with "-l" option.
BTW, there's something wrong with the linker command line. It must be

g++ -static -o main main.o Packets_Processing.o codec.o -L. -l$libspeech -L $ippdir $IPPLIB

i.e. "-l" (lower L) before $libspeech. Or, add "-l" to export command.



Hi Sergey

-L. followed with dir + filename ==== -L dir -l library-name

It at least works for g++.

Finally, I got my link working!

Thank you very much!

Leave a Comment

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