Link errors when building ffmpeg (was Re: ffmpeg port)

Boey Maun Suang boeyms at macports.org
Wed May 23 08:30:26 PDT 2007


(Now Cc'ing this to the macports-users list in case others are  
interested)

Hi Adam,

> I had been using the macports ffmpeg for a while.  I just tried an  
> upgrade and now I get link errors.  I googled around and found that  
> you had done some work related to the port, and specifically I  
> found suggestions to just build it without macport directly from  
> svn and that does work.
>
> I thought that you may have some suggestions for what is going on  
> with the port install, and ideas for how to fix it.  I tried a  
> direct email to the maintainer listed on the port, but I have not  
> gotten a response.
>
> Here are some details:
>
> I had this installed:  ffmpeg @0.4.9-pre1_0+a52+faac+faad+lame+x264  
> (active)
> If I do this:  sudo port upgrade ffmpeg
>
> I get the following errors:
>
> --->  Building ffmpeg with target all
> Error: Target com.apple.build returned: shell command " cd "/opt/ 
> local/var/db/dports/build/ 
> _opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_ 
> dports_multimedia_ffmpeg/work/trunk" && make all " returned error 2
> Command output: make -C doc all
> make[1]: Nothing to be done for `all'.
> make -C libavutil   all
> make[1]: Nothing to be done for `all'.
> make -C libavcodec  all
> gcc -dynamiclib -Wl,-single_module -Wl,-install_name,/opt/local/lib/ 
> libavcodec.dylib,-current_version,51.1.0,-compatibility_version, 
> 51.1.0 -Wl,-read_only_relocs,suppress -Wl,-dynamic,- 
> search_paths_first -L/opt/local/lib -o libavcodec.51.dylib  
> bitstream.o utils.o allcodecs.o mpegvideo.o jrevdct.o jfdctfst.o  
> jfdctint.o mjpeg.o resample.o resample2.o dsputil.o motion_est.o  
> imgconvert.o mpeg12.o mpegaudiodec.o simple_idct.o ratecontrol.o  
> eval.o error_resilience.o fft.o mdct.o raw.o golomb.o cabac.o  
> faandct.o parser.o vp3dsp.o h264idct.o rangecoder.o pnm.o h263.o  
> msmpeg4.o h263dec.o opt.o bitstream_filter.o audioconvert.o  
> imgresample.o i386/fdct_mmx.o i386/cputest.o i386/dsputil_mmx.o  
> i386/mpegvideo_mmx.o i386/motion_est_mmx.o i386/simple_idct_mmx.o  
> i386/idct_mmx_xvid.o i386/fft_sse.o i386/vp3dsp_mmx.o i386/ 
> vp3dsp_sse2.o i386/fft_3dn.o i386/fft_3dn2.o aasc.o ac3enc.o ac3.o  
> alac.o asv1.o avs.o bethsoftvideo.o bmp.o bmpenc.o c93.o cavs.o  
> cavsdsp.o cinepak.o cljr.o cook.o cscd.o cyuv.o dca.o dnxhddec.o  
> dsicinav.o dvbsubdec.o dvbsub.o dvdsubdec.o dvdsubenc.o dv.o dxa.o  
> 8bps.o ffv1.o huffyuv.o flac.o flacenc.o flashsv.o flashsvenc.o  
> flicvideo.o 4xm.o fraps.o gifdec.o lzw.o gif.o h261.o h264.o  
> idcinvideo.o imc.o indeo2.o indeo3.o interplayvideo.o dpcm.o kmvc.o  
> loco.o mace.o mmvideo.o mpegaudio.o mpc.o msrle.o msvideo1.o lcl.o  
> nuv.o rtjpeg.o png.o qdm2.o qdrw.o qpeg.o qtrle.o ra144.o ra288.o  
> roqvideo.o rpza.o rv10.o sgidec.o sgienc.o rle.o shorten.o  
> smacker.o smc.o snow.o sonic.o svq1.o targa.o targaenc.o vp3.o  
> xiph.o tiertexseqv.o tiff.o tiffenc.o lzwenc.o truemotion1.o  
> truemotion2.o truespeech.o tscc.o tta.o ulti.o vc1.o vc1dsp.o  
> vcr1.o vmdav.o vmnc.o vorbis.o vorbis_data.o vorbis_enc.o vp5.o  
> vp56.o vp56data.o vp6.o vqavideo.o wavpack.o wmadec.o wma.o  
> wmaenc.o wnv1.o ws-snd1.o xan.o xl.o zmbv.o zmbvenc.o pcm.o adpcm.o  
> adx.o g726.o a52dec.o faac.o faad.o mp3lameaudio.o x264.o pthread.o  
> i386/idct_mmx.o i386/cavsdsp_mmx.o i386/snowdsp_mmx.o -L"/opt/local/ 
> var/db/dports/build/ 
> _opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_ 
> dports_multimedia_ffmpeg/work/trunk"/libavutil -lavutil -lz -la52 - 
> lmp3lame -lm -lx264 -lfaac -lfaad
> ld: Undefined symbols:
> _av_init_random
> _av_random_generate_untempered_numbers
> _lzo1x_decode
> /usr/bin/libtool: internal link edit command failed
> make[1]: *** [libavcodec.51.dylib] Error 1
> make: *** [lib] Error 2
>
> Error: Unable to upgrade port: 1
>
> Thanks,
>
> --Adam

First of all, it would be helpful to know which version of the ffmpeg  
port your system was trying to upgrade to.  I notice that the  
maintainer has just bumped it to 0.4.9-pre1_2 (i.e. version is the  
same, but it's now revision 2), which corresponds to tag 9102 in the  
ffmpeg svn repository.  If "port search ffmpeg" doesn't list the  
ffmpeg as being @0.4.9-pre1_2, my first suggestion would be to do run  
"port sync" (with sudo in front it as necessary) and to try cleaning  
and installing ffmpeg again.

If that doesn't work, then I think you may have found a bug that you  
should open a ticket for and report to the maintainer.  (I initially  
thought from _lzo1x_decode being undefined that my recent fix to the  
lzo2 port [1] might have had something to do with it, but the  
functions corresponding to the undefined symbols appear only in  
ffmpeg).  When you file a ticket for a maintained port, don't forget  
to put both your email and the maintainer's email address into the  
cc: field, otherwise neither of you will receive notification of the  
creation of or updates to the ticket.

Kind regards,


Maun Suang

[1] http://trac.macports.org/projects/macports/changeset/25465

-- 
Boey Maun Suang (Boey is my surname)
Email: boeyms at macports dot org






More information about the macports-users mailing list