- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
./install.sh
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-2.8.12.1.tar.gz to /tmp
	cd /tmp
	tar -zxvf cmake-2.8.12.1.tar.gz
	cd cmake-2.8.12.1
	./bootstrap
	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.8.0.0.005/builder/
	./build.sh --sample=speech-codecs --arch=intel64 --ws=make --ipp=static --conf=release --clean
	cd /tmp/ipp-samples.8.0.0.005/__cmake/speech-codecs.intel64.make.dynamic.release
	make
-----------------------------------------------------------------------------------------------------------------------------
/tmp/ipp-samples.8.0.0.005/__cmake/speech-codecs.intel64.make.static.release/__lib/release
	[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
	 
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Mark,
How do you link your application? Could you show the command line?
Regards,
	Sergey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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,
	Ying
/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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you very much, Sergey and Ying!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ying
I know how to link now.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Regards,
	Sergey
	 
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!
 
					
				
				
			
		
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page