[FFmpeg-user] duplicate symbol

桃源老師 xanadu6291 at dream.jp
Sat Oct 13 14:26:01 EEST 2018


Hello list member,

> 2018/10/10 午後10:28、桃源老師 <xanadu6291 at dream.jp>のメール:
> 
> 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

The issue “duplicated symbol” have solved on libaom’s commit cf64444.

https://bugs.chromium.org/p/aomedia/issues/detail?id=2196#c7

So no need to rollback anymore!!



Best Regards,



// Miya aka. TougenRoushi



More information about the ffmpeg-user mailing list