[Libav-user] Linking error: "version node not found for symbol av_dup_packet at LIBAVFORMAT_52"

Nathan nathan.stocks at gmail.com
Sun Nov 27 00:08:50 CET 2011


THE PROBLEM

I'm trying to produce new binary releases for AVbin (
http://avbin.github.com ), but I'm running into a linking error when I
try to link FFmpeg's libraries into the avbin library on an up-to-date
version of Ubuntu 11.10 amd64 in a VMware VM:

ld -shared -soname libavbin.so.8 -o dist/linux-x86-64/libavbin.so.8
build/avbin.o -whole-archive ffmpeg/libavformat/libavformat.a
ffmpeg/libavcodec/libavcodec.a ffmpeg/libavutil/libavutil.a
ffmpeg/libswscale/libswscale.a -no-whole-archive -R /usr/local/lib -R
.
ld: dist/linux-x86-64/libavbin.so.8: version node not found for symbol
av_dup_packet at LIBAVFORMAT_52
ld: failed to set dynamic section sizes: Bad value
make: *** [dist/linux-x86-64/libavbin.so.8] Error 1

I've spent several hours googling, but even after reading ".symver"
man pages and every post I can find relating to the error, I still
don't really understand what a "version node" is, why it is needed,
what is wrong with it in this particular case, or how to fix it.


EASY STEPS TO DUPLICATE

git clone git://github.com/AVbin/AVbin.git
cd AVbin
git checkout origin/merge-micah
./build.sh linux-x86-64

(Note: The actual commit on the merge-micah branch at the time of this
writing is 35bc9c97)


MORE RELEVANT INFORMATION

Environment (Inside a VMware VM):

$ uname -a
Linux nathan-ubuntu11 3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2
13:27:26 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

$ gcc --version
gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1

FFmpeg configure options:

--disable-ffmpeg
--disable-ffserver
--disable-ffplay
--disable-debug
--disable-encoders
--disable-muxers
--disable-protocols
--enable-protocol=file
--disable-devices
--disable-network
--disable-zlib
--enable-shared
--enable-static
--disable-mmx
--arch=x86_64
--enable-pthreads
--disable-bzlib


Any ideas?

~ Nathan


More information about the Libav-user mailing list