Building vlc-0.8.6a: undefined reference to `gpg_strerror'

*nix specific usage questions
sp02
New Cone
New Cone
Posts: 4
Joined: 21 Mar 2007 00:03

Building vlc-0.8.6a: undefined reference to `gpg_strerror'

Postby sp02 » 21 Mar 2007 00:20

I'm trying to build vlc-0.8.6a on Fedora 6.0. I need amr_nb streaming support (I've successfully built ffmpeg).
I ran into this gpg_strerror undefined issue during 'make' in extras/contrib.

Can anyone please get me going on this one? I appreaciate it.
If I can install all the dependency libraries through 'yum' do I need to build "extras/contrib" ?

thanks,
sp02

Here is my configure parameters for VLC
./configure --enable-x11 --enable-xvideo --disable-gtk --disable-libmpeg2 --enable-sdl --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-amr_nb --enable-mad --enable-libdvbpsi --enable-a52 --enable-dts --enable-dvdnav --enable-faad --enable-debug --enable-vorbis --enable-ogg --enable-theora --enable-faac --enable-mkv --enable-freetype --enable-fribidi --enable-speex --enable-flac --enable-live555 --with-live555-tree=/usr/lib/ --enable-caca --enable-skins --enable-skins2 --enable-alsa --disable-kde --enable-qt --enable-wxWidgets --enable-wxwindows --enable-ncurses --enable-release

Here is the error

if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../src -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/include -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/include -Wall -MT basic.o -MD -MP -MF ".deps/basic.Tpo" -c -o basic.o basic.c; \
then mv -f ".deps/basic.Tpo" ".deps/basic.Po"; else rm -f ".deps/basic.Tpo"; exit 1; fi
/bin/sh ../libtool --tag=CC --mode=link gcc -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/include -Wall -L/home/harish/vlc-0.8.6a/extras/contrib/lib -o basic basic.o ../src/libgcrypt.la -lnsl -lnsl
gcc -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/include -Wall -o .libs/basic basic.o -L/home/harish/vlc-0.8.6a/extras/contrib/lib ../src/.libs/libgcrypt.so -lnsl -Wl,--rpath -Wl,/home/harish/vlc-0.8.6a/extras/contrib/lib
basic.o: In function `check_cbc_mac_cipher':
basic.c:(.text+0x396): undefined reference to `gpg_strerror'
basic.c:(.text+0x4be): undefined reference to `gpg_strerror'
basic.c:(.text+0x536): undefined reference to `gpg_strerror'
basic.c:(.text+0x641): undefined reference to `gpg_strerror'
basic.o: In function `check_aes128_cbc_cts_cipher':
basic.c:(.text+0xae1): undefined reference to `gpg_strerror'

xtophe
Big Cone-huna
Big Cone-huna
Posts: 1209
Joined: 24 Nov 2003 10:12
Location: Bristol, England

Re: Building vlc-0.8.6a: undefined reference to `gpg_strerro

Postby xtophe » 21 Mar 2007 20:42

If I can install all the dependency libraries through 'yum' do I need to build "extras/contrib" ?
No
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../src -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/include -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/include -Wall -MT basic.o -MD -MP -MF ".deps/basic.Tpo" -c -o basic.o basic.c; \
then mv -f ".deps/basic.Tpo" ".deps/basic.Po"; else rm -f ".deps/basic.Tpo"; exit 1; fi
/bin/sh ../libtool --tag=CC --mode=link gcc -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/include -Wall -L/home/harish/vlc-0.8.6a/extras/contrib/lib -o basic basic.o ../src/libgcrypt.la -lnsl -lnsl
gcc -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/home/harish/vlc-0.8.6a/extras/contrib/include -I/include -Wall -o .libs/basic basic.o -L/home/harish/vlc-0.8.6a/extras/contrib/lib ../src/.libs/libgcrypt.so -lnsl -Wl,--rpath -Wl,/home/harish/vlc-0.8.6a/extras/contrib/lib
basic.o: In function `check_cbc_mac_cipher':
basic.c:(.text+0x396): undefined reference to `gpg_strerror'
basic.c:(.text+0x4be): undefined reference to `gpg_strerror'
basic.c:(.text+0x536): undefined reference to `gpg_strerror'
basic.c:(.text+0x641): undefined reference to `gpg_strerror'
basic.o: In function `check_aes128_cbc_cts_cipher':
basic.c:(.text+0xae1): undefined reference to `gpg_strerror'
Looks like you're missing libgpg-error
Xtophe

sp02
New Cone
New Cone
Posts: 4
Joined: 21 Mar 2007 00:03

Postby sp02 » 22 Mar 2007 03:29

Thanks for the quick response. I hope you can help further..

I'm trying to stream AMR encoded audio on HTTP port, please readon...

I dropped building the extras/contrib directory.

Here is my VLC config options
./configure --enable-x11 --enable-xvideo --without-contrib --disable-gtk --disable-libmpeg2 --enable-sdl --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-amr_nb --enable-mad --enable-libdvbpsi --enable-a52 --enable-dts --enable-dvdnav --enable-faad --enable-debug --enable-vorbis --enable-ogg --enable-theora --enable-faac --enable-mkv --enable-freetype --enable-fribidi --enable-speex --enable-flac --enable-live555 --with-live555-tree=/usr/lib/ --enable-caca --enable-skins --enable-skins2 --enable-alsa --disable-kde --enable-qt --enable-wxWidgets --enable-ncurses --enable-release

Now I've built vlc-0.8.6a/ successfully, I had to change the following
1. specify the header file search path to include below, in modules/demux/Makefile
-I/usr/include/UsageEnvironment -I/usr/include/groupsock -I/usr/include/liveMedia -I/usr/include/BasicUsageEnvironment

2. Linked vlc manually, otherwise it was not taking GroupSock symbols ( I had to give the -lgroupsock after UsageEnvironment I guess)

g++ -Wsign-compare -Wall -pipe -o vlc vlc-vlc.o -g src/libvlc.a ./modules/misc/memcpy/libmemcpymmx.a ./modules/video_chroma/libi420_rgb_mmx.a ./modules/video_chroma/libi422_yuy2_mmx.a ./modules/video_chroma/libi420_ymga_mmx.a ./modules/video_chroma/libi420_yuy2_mmx.a ./modules/misc/memcpy/libmemcpymmxext.a ./modules/misc/memcpy/libmemcpy3dn.a ./modules/demux/liblive555.a -L/usr/local/lib -L/lib -lhal -ldbus-1 -lrt -lpthread -ldl -lm -lgroupsock -lBasicUsageEnvironment -lliveMedia -lUsageEnvironment -lgroupsock

I had built ffmpeg with AMR NB support earlier.
How do I make sure it has the amr support?
nm /usr/lib/libavcodec.so | grep -i amr
00358e40 t Decoder_amr
003587d0 t Decoder_amr_reset
00355fc0 t amr_nb_decode_close
00355f20 t amr_nb_decode_frame
00355fe0 t amr_nb_decode_init
0041dac0 D amr_nb_decoder
00355dd0 t amr_nb_encode_close
00355e10 t amr_nb_encode_frame
00355e60 t amr_nb_encode_init
0041db00 D amr_nb_encoder
0035ee90 t cod_amr_reset

I can see amr_nb when I do ffmpeg -formats (I don't know what the DEA flags stand for ?)
DEA adpcm_yamaha
D A alac
DEA amr_nb
DEV D asv1
DEV D asv2
D V D avs


When I try to stream in AMR format I get the following error
[00000371] ffmpeg decoder debug: ffmpeg codec (Windows Media Audio 2) started
[00000371] main decoder debug: using decoder module "ffmpeg"
[00000372] main encoder debug: looking for encoder module: 10 candidates
[00000372] ffmpeg encoder debug: libavcodec already initialized
[00000372] ffmpeg encoder error: cannot find encoder AMR narrow band
[00000318] stream_out_transcode private error: cannot find encoder ((null))
[00000371] ffmpeg decoder debug: ffmpeg codec (Windows Media Audio 2) stopped
[00000371] main decoder debug: removing module "ffmpeg"
:(

Thanks for the help,
sp02

yinglcs
Blank Cone
Blank Cone
Posts: 48
Joined: 06 Dec 2006 17:04

Postby yinglcs » 17 Jun 2007 05:36

Hi,

i am having the same problem when compile extra/contrib under ubuntu.

i have install libgpg-error 1.6 in /usr/local/lib

$ pwd libgpg-error.so
/usr/local/lib
$ nm libgpg-error.so | grep gpg_strerror
00000950 T gpg_strerror
00000780 T gpg_strerror_r

And i have /usr/local/lib in my LD_LIBRARY_PATH,
but I still have this error, can you please help me?

basic.o: In function `check_cbc_mac_cipher':
basic.c:(.text+0x3b3): undefined reference to `gpg_strerror'
basic.c:(.text+0x4ed): undefined reference to `gpg_strerror'
basic.c:(.text+0x568): undefined reference to `gpg_strerror'
basic.c:(.text+0x67f): undefined reference to `gpg_strerror'
basic.o: In function `check_aes128_cbc_cts_cipher':
basic.c:(.text+0xb59): undefined reference to `gpg_strerror'

Robo210
New Cone
New Cone
Posts: 1
Joined: 12 Jul 2007 04:50

Re: Building vlc-0.8.6a: undefined reference to `gpg_strerror'

Postby Robo210 » 12 Jul 2007 05:07

I ran into this same problem, and found that the easier way to fix this is to add gpg-error to the dependencies for these files.
To do this, go into extra/contrib/src/libgcrypt/tests and open the file Makefile.in
Find the line "basic_LDADD = $(LDADD)" and add "-lgpg-error" to the end of it. Do this for tsexp, keygen, and benchmark too.
Now when you run make everything should work. It's possible that the configure script will overwrite your changes, so simple move it someplace and make a new one that is empty except for the line "#! /bin/sh". It is also possible that you will need to do a make install in extra/contrib/src/libgpg-error first (passing the full path to extra/contrib/ to "./configure --prefix" if you don't want libgpg-error installed permanently).
While I'm sure that their is a cleaner way of fixing this (such as adding gpg-error to LDADD) these changes should do the trick to make it work.


Return to “VLC media player for Linux and friends Troubleshooting”

Who is online

Users browsing this forum: No registered users and 16 guests