[FFmpeg-user] duplicate symbol

桃源老師 xanadu6291 at dream.jp
Wed Oct 10 16:28:56 EEST 2018


Hello list member...

> 2018/10/10 午前3:14、桃源老師 <xanadu6291 at dream.jp>のメール:
> 
> Hello list member,
> 
>> 2018/10/09 午後11:03、桃源老師 <xanadu6291 at dream.jp>のメール:
>> 
>> Hello list member,
>> 
>>> 2018/10/09 午後10:42、桃源老師 <xanadu6291 at dream.jp>のメール:
>>> 
>>> Hello Reindl -san, 
>>> 
>>>> 2018/10/09 午後10:21、Reindl Harald <h.reindl at thelounge.net>のメール:
>>>> 
>>>> 
>>>> http://www.catb.org/esr/faqs/smart-questions.html#beprecise
>>>> 
>>>> Am 09.10.18 um 14:56 schrieb 桃源老師:
>>>>> Hello list member, 
>>>>> 
>>>>> I’m now trying to build static ffmpeg on macOS Mojave 10.14.
>>>>> 
>>>>> Then I got the following "duplicate symbol” error at linking.
>>>>> 
>>>>> How can I fix it???   Please help me!!
>>>>> 
>>>>> 
>>>>> CC	fftools/ffmpeg_videotoolbox.o
>>>>> LD	ffmpeg_g
>>>>> duplicate symbol _get_rdmult_delta in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encodeframe.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encodeframe.c.o)
>>>>> duplicate symbol _init_tpl_stats in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _init_gop_frames in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _get_quantize_error in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _round_floor in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _mc_flow_dispenser in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _motion_compensated_prediction in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _mode_estimation in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _wht_fwd_txfm in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _tpl_model_update in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _tpl_model_store in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _tpl_model_update_b in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> duplicate symbol _get_overlap_area in:
>>>>> /Volumes/ffmpeg_compile/lib/libaom.a(encoder.c.o)
>>>>> /Volumes/ffmpeg_compile/lib/libvpx.a(vp9_encoder.c.o)
>>>>> ld: 13 duplicate symbols for architecture x86_64
>>>>> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>>>>> make: *** [ffmpeg_g] Error 1
>>> 
>>> 
>>> 1. I can successfully configure ffmpeg.
>>> 2.Then I run “make” command.
>>> 3.Near last portion of “make” process, "LD	ffmpeg_g” tells me it’s final linking process, then I got “duplicate symbol” error on that process.
>>> 4.The console output of near the error is above.
>>> 
>>> 
>>> Am I explained what is my problem is?
>> 
>> So with my poor poor knowledge, I found the following:
>> 
>> $ cd /Volumes/ffmpeg_compile/lib/
>> 
>> $ nm libaom.a | grep get_overlap_area
>> 0000000000008840 T _get_overlap_area
>> $ nm libvpx.a | grep get_overlap_area
>> 0000000000004dc0 T _get_overlap_area
>> 
>> $ nm libaom.a | grep tpl_model_update_b
>> 00000000000089d0 T _tpl_model_update_b
>> $ nm libvpx.a | grep tpl_model_update_b
>> 0000000000004fc0 T _tpl_model_update_b
>> 
>> So  libaom.a and  libvpx.a seems to have same something. 
>> 
>> “Duplicated Symbol” means above?  “nm” command result should not have same result?
>> 
>> AND Is it the problem of google product?  Not of ffmpeg?
> 
> I found the followings:
> 
> 1.Changing to OS environment is not related.
> 2.Rollback both library, i.e. libvpx.a and libaom.a to previous success (Aug. 17, 2018) gives ffmpeg without error.
> (Ffmpeg is git head)
> 
> So there must be something wrong with both library…  But may hard to find out the criminal since the good-day is 54 days before.

I have confirmed that problem is on the libaom side.

Issue 2196 https://bugs.chromium.org/p/aomedia/issues/detail?id=2196&q=

is the exactly same issue what I have encountered.

So currently, if you build static ffmpeg using both libvpx and libaom,  you will be have to rollback local git head to before commit 7cae98f.

You can find out the commit to rollback at https://aomedia.googlesource.com/aom/+log



Best Regards,



// Miya aka. TougenRoushi



More information about the ffmpeg-user mailing list