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