hi,

have a look to see if it's in any other file.  I should have said grep is
just a quick way to guess... but it may not define the symbol, just because
it greps to be in there.

Use the command nm to list symbols.  So with that you should be able to find
which one defines it.

eg.
    nm bla.so
    nm bla.o


Otherwise have a look in the ffmpeg source to see where it is getting
compiled into.

cu,



On Fri, May 22, 2009 at 9:21 AM, Tyler Laing <[email protected]> wrote:

> Thanks Rene,
>
> Now I have this issue:
>
> ty...@surak:~/pygame_movie$ python -c "import pygame.gmovie"
> Traceback (most recent call last):
>   File "<string>", line 1, in <module>
> ImportError: /usr/lib/libavcodec.so.51: undefined symbol: av_random_init
> ty...@surak:~/pygame_movie$ grep "av_random_init"
> /usr/lib/libavcodec.so.51
> Binary file /usr/lib/libavcodec.so.51 matches
>
> Is there any way to force the gmovie.so to link to a specific library file?
>
> -Tyler
>
>
> On Thu, May 21, 2009 at 3:05 PM, René Dudfield <[email protected]> wrote:
>
>> hello,
>>
>> you can grep the shared modules to find where that function is...
>>
>> It apppears to be in libavcodec.so
>>
>>
>> You can see what your gmovie.so has linked to it on linux with:
>> $ ldd gmovie.so
>>
>> Or on OSX with:
>> $ otool -L gmovie.so
>>
>>
>> cheers,
>>
>>
>>
>>
>> On Fri, May 22, 2009 at 8:00 AM, Tyler Laing <[email protected]> wrote:
>>
>>> Sorry to bother you all again,
>>>
>>> Now when I type import pygame.gmovie, it gives this error:
>>> ImportError: /usr/lib/python2.5/site-packages/pygame/gmovie.so: undefined
>>> symbol: av_audio_convert_free
>>>
>>> So I included both the audioconvert.h and audioconvert.c files into the
>>> pygame source directory. But I can't figure out how to link these files into
>>> the gmovie.so executable. I don't have a lot of experience linking files
>>> together, and all of your help has been much appreciated!
>>>
>>> -Tyler
>>>
>>>
>>> On Thu, May 21, 2009 at 2:33 PM, Tyler Laing <[email protected]>wrote:
>>>
>>>> Lenard,
>>>>
>>>> Thank you very much! That worked.
>>>>
>>>> -Tyler
>>>>
>>>>
>>>> On Thu, May 21, 2009 at 1:26 PM, Lenard Lindstrom <[email protected]>wrote:
>>>>
>>>>> When building ffmpeg you have to pass --enable-shared to ./configure.
>>>>> Do a ./configure --help to see all the options.
>>>>>
>>>>> Lenard
>>>>>
>>>>>
>>>>> Tyler Laing wrote:
>>>>>
>>>>>> Hello all,
>>>>>>
>>>>>> Making fast progress here. I've got a question for later, but the more
>>>>>> relevant one right now is this:
>>>>>>
>>>>>> The extension compiles, and it fails when linking with libavformat.
>>>>>> The error message is this:
>>>>>> gcc -pthread -shared -Wl,-O1,-Bsymbolic-functions
>>>>>> build/temp.linux-x86_64-2.5/src/ff_movie.o -lSDL -lavformat -lavdevice
>>>>>> -lavcodec -lavutil -lswscale -o 
>>>>>> build/lib.linux-x86_64-2.5/pygame/gmovie.so
>>>>>> /usr/bin/ld: /usr/local/lib/avformat.a(allformats.o): relocation of
>>>>>> R_X86_64_32 against 'aac_demuxer' can not be used when making a shared
>>>>>> object; recompile with -fPIC
>>>>>> /usr/local/lib/libavformat.a: could not read symbols: Bad value
>>>>>> collect2: ld returned with 1 exit status
>>>>>> error: command 'gcc' failed with exit status 1
>>>>>>
>>>>>>
>>>>>> In addition, to be able to get to the compilation stage one needs to
>>>>>> do this:
>>>>>> -download ffmpeg-0.5.0
>>>>>> -run ./configure in ffmpeg-0.5.0 directory
>>>>>> -run make
>>>>>> -run make install (will need admin privileges?)
>>>>>> -cd libswscale
>>>>>> -run make
>>>>>> -run make install (will need admin privileges?)
>>>>>>
>>>>>> This will put all the correct versions of the header files in
>>>>>> /usr/local/include (depending on the distribution)
>>>>>>
>>>>>> -Tyler
>>>>>>
>>>>>> --
>>>>>> Visit my blog at http://oddco.ca/zeroth/zblog
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Visit my blog at http://oddco.ca/zeroth/zblog
>>>>
>>>
>>>
>>>
>>> --
>>> Visit my blog at http://oddco.ca/zeroth/zblog
>>>
>>
>>
>
>
> --
> Visit my blog at http://oddco.ca/zeroth/zblog
>

Reply via email to