pkuvcl / davs2

An open-source decoder of AVS2-P2/IEEE1857.4 video coding standard
GNU General Public License v2.0
129 stars 52 forks source link

duplicate symbol _bs_init in libdavs2.a(bitstream.o) #8

Closed xanadu6291 closed 5 years ago

xanadu6291 commented 5 years ago

Describe the bug

When trying to build ffmpeg with --enable-libdavs2 and --enable-libbluray, it fails with error of the following:

LD ffmpeg_g duplicate symbol _bs_init in: /Volumes/ffmpeg_compile/lib/libdavs2.a(bitstream.o) /Volumes/ffmpeg_compile/lib/libbluray.a(libbluray_la-bits.o) ld: 1 duplicate symbol for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [ffmpeg_g] Error 1

To Reproduce

1.Build both libdavs2 and libbluray library as static 2.Try to build ffmpeg with --enable-libdavs2 and --enable-libbluray options. 3.ffmpeg make process fails with duplicate symbol error as above.

Expected behavior

Can build ffmpeg without error.

Desktop (please complete the following information):

Additional context

I have similar experience while building ffmpeg. The cause is functions in one library is not defined as static. So this time might be same reason. Function bs_init in davs2/source/common/bitstream.cc is suspicious.

luofalei commented 5 years ago

Thanks pointing out this bug and it's very clear. We added a prefix to global functions declared in this library in the latest commits, but I'm not able to test on this environment now. Hope this could solve the problem, thanks.

xanadu6291 commented 5 years ago

Thanks for prompt action. I have confirmed that the problem was gone.