[Ffmpeg-devel] ffmpeg doesn't compile on Mac OS X anymore...

Diego Biurrun diego
Wed Oct 12 10:24:13 CEST 2005


On Tue, Oct 11, 2005 at 11:20:58PM -0400, Lina Pezzella wrote:
> >
> >Grab a latest CVS snapshot and compile on 10.3.9. The build fails.
> >If I export that variable the build finishes. This is the bug.
> 
> Ah. I understand now. This is expected behavior. The Darwin linker  
> expects that variable to be set in order to use newer linker features  
> such as the ones employed by my patch. I agree that it is undesirable  
> to have to set a variable manually before compilation, but this is  
> the solution that Apple has given us. If you try to compile other  
> open source programs, they frequently fail the same way when this  
> variable isn't set.

I believe that the build system should then set that variable in order
for the build to complete.

> This said, there may be some way to "fix" the ffmpeg code such that  
> the Darwin linker doesn't fail complaining about undefined objects  
> like it used to with --enable-shared. Unfortunately, I'm not talented  
> enough to do this. If you want to have a go at it, the error as  
> reported is:
> 
> make -C vhook all
> cc -fPIC -O3 -g -Wall -Wno-switch  -no-cpp-precomp -pipe -fomit-frame- 
> pointer -force_cpusubtype_ALL -Wno-sign-compare -faltivec -I.. -I'/ 
> Users/burgundy/ffmpeg' -I'/Users/burgundy/ffmpeg'/libavformat -I'/ 
> Users/burgundy/ffmpeg'/libavcodec -I'/Users/burgundy/ffmpeg'/ 
> libavutil -DHAVE_AV_CONFIG_H `freetype-config --cflags`   -c -o  
> null.o null.c
> null.c: In function 'Process':
> null.c:59: warning: pointer targets in passing argument 2 of  
> 'avpicture_fill' differ in signedness
> cc -Wl,-dynamic,-search_paths_first -dynamiclib -Wl,-single_module - 
> flat_namespace -Wl,-install_name,/usr/local/lib/vhook/null.dylib -g - 
> o null.dylib null.o
> ld: Undefined symbols:
> _av_free
> _av_malloc
> _av_mallocz
> _avpicture_fill
> _avpicture_get_size
> _img_convert
> /usr/bin/libtool: internal link edit command failed
> make[1]: *** [null.dylib] Error 1
> rm null.o
> make: *** [videohook] Error 2
> 
> Note that this isn't really an error, it's a product of the Darwin  
> linker being stricter than the GNU linker.
> 
> So basically to recap, my patch makes ffmpeg work on Panther and  
> Tiger, but MACOSX_DEPLOYMENT_TARGET has to be set, as the Darwin  
> linker expects it. In order to get rid of the requirement of setting  
> this variable, one would need to remove -undefined dynamic_lookup  
> from configure. In order to do this, the above bug would need to be  
> resolved somehow.

Does anybody have an idea how to fix this?

Diego





More information about the ffmpeg-devel mailing list