链接器错误:'ff_log2_tab'的多个定义

问题描述 投票:0回答:1

我正在尝试构建一个将libav的静态版本链接到其中的共享库。我用--enable-pic构建了库,以确保它对我有用。但在使用以下命令链接时:

g++ -shared -o libbrake.so -L./ -L./libs -Wl,-z,defs -Wl,--whole-archive -Wl,-Bsymbolic  -lavcodec -lavfilter -lavformat -lavresample -lavutil -lswscale -lbluray -ldvdnav -ldvdread -lhandbrake -lvpx -ldl -lm -lpthread -lx264 -ltheoraenc -lvorbis -ljansson -la52 -lass -lbz2 -lz -lxml2 -lopus -lmp3lame -logg -lsamplerate -lfontconfig -ldca -lharfbuzz

所需的libav静态库在./libs目录中作为.a档案。

链接后我得到错误:

./libs/libavformat.a(log2_tab.o):(.rodata+0x0): multiple definition of `ff_log2_tab'

有什么方法可以解决这个问题吗?

c++ gcc linker
1个回答
-2
投票

我已经这样做了:用ar d删除多个目标文件。但我觉得这很“脏” - Nidhoegger

© www.soinside.com 2019 - 2024. All rights reserved.