[libav-api] Some help with linking?

Nathan nathan.stocks at gmail.com
Thu Dec 1 06:55:29 CET 2011


Cool.  Thanks for the willingness!

The projects do seem to have some similarities, but I'm not sure how
looking at an external subroutine interface for libav<->perl that
facilitates handling media streams is going to help me with the
linking problems I'm experiencing in C (?).  Have you run into a
similar linking problem with your project?

The thing that really bugs me is that this linking error only happens
in Linux.  The OS X and Windows releases I did had their own issues I
had to deal with, but not this linking problem.

~ Nathan

On Wed, Nov 30, 2011 at 6:12 PM, Mischa Spiegelmock
<mspiegelmock at gmail.com> wrote:
> Hi! I want to help! Please see my XS interface for Perl that I've been
> developing:
> https://github.com/revmischa/av-streamer
>
> Sounds like we want the same thing: a slightly higher-level interface,
> comprised of a lot of the code in ffmpeg.c/avconv.c in a reusable
> form.
>
> On Wed, Nov 30, 2011 at 4:30 PM, Nathan <nathan.stocks at gmail.com> wrote:
>> Hi, I'm the (new) maintainer of AVbin, a project setting out to
>> provide a stable ABI for the Pyglet project (and any other project
>> that finds it useful) to decode audio/video by thinly wrapping FFmpeg
>> and providing binary releases for various platforms.  The project was
>> abandoned in 2008, but I volunteered to try to revive it several weeks
>> ago.  The project home page is at http://avbin.github.com and the
>> repository is at https://github.com/avbin/avbin
>>
>>
>> I'll admit up front, I'm not (yet) an expert at debugging C code
>> compilation and linking problems, but I'm learning fast!  I've tried
>> to get some help specifically with the linking problems we're
>> experiencing from the FFmpeg mailing lists, but so far the response
>> from those on the FFmpeg lists has not been encouraging.
>>
>> I only recently learned of the Libav fork, and the code we're
>> currently trying to put out is pre-fork (from last December), so I
>> thought  that perhaps this would be a good place to turn in the hopes
>> of a warmer response.
>>
>> The FFmpeg version I'm dealing with is r25864 from the old subversion
>> repository at svn://svn.mplayerhq.hu/ffmpeg/trunk (that revision is
>> from 2010-12-03).
>>
>>
>> (Disclaimer:  The rest of this email is a copy of what I sent to the
>> FFmpeg libav-user mailing list.)
>>
>> 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
>> _______________________________________________
>> libav-api mailing list
>> libav-api at libav.org
>> https://lists.libav.org/mailman/listinfo/libav-api
> _______________________________________________
> libav-api mailing list
> libav-api at libav.org
> https://lists.libav.org/mailman/listinfo/libav-api
>


More information about the libav-api mailing list