最近将VLC-2.1.6在ubuntu上编译,由于gstreamer版本是0.10,因此不能用vlc 2.0之后的版本.
编译时报错,错误信息如下:
/usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `ff_a64_muxer' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavformat.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[5]: *** [libaccess_avio_plugin.la] Error 1
意思是要求configure时加上-fPIC, 重新编译,于是
1) make clean
CFLAGS=-fPIC ./configure --enable-debug
make
但是出现了同样的错误.
于是查资料,发现ffmpeg也需要CFLAGS=-fPIC ./configure
然后重新编译,安装
接着重复步骤1), vlc顺利编译通过.
如果电脑上安装了libcrystalhd,则需要先卸载,再编译.