How to resolve duplicate symbol link static library

Submitted by lepton on Fri, 05/20/2016 - 11:35


首先从静态库中解压 .o 文件

ar -x lib.a

nm查看符号表  找到重复的函数符号名

nm a.o


0000000000000000 T __Z4testv //c++

0000000000000000 T test //c


隐藏符号 相当于加 static

ld -r a.o -unexported_symbol  __Z4testv -o c.o; rm a.o; mv c.o a.o //mac 下可使用

objcopy --localize-symbol=_Z4testv a.o


ld -r a.o -alias __Z4testv test_c  -unexported_symbol  __Z4testv -o c.o //mac 下可使用

objcopy --redefine-sym _Z4testv=test_a a.o

如果其他 .o文件引用了这个函数 对每一个文件都要执行

find ./ -name "*.o" -exec objcopy --redefine-sym _Z4testv=test_a {} \;


c语言可以 函数改名变成foo_test
c++因为引入了很多系统函数 只能用上面的方法一个一个该

objcopy --prefix-symbols=foo_ a.o


ar crs lib.a *.o


xousereguco (not verified)

Mon, 05/17/2021 - 01:21

A hypoxic, undermine sexuality [URL= - cialis[/URL - [URL= - no precription hydroxychloroquine[/URL - [URL= - lowest slimfast prices[/URL - [URL= - cialis 10 price buy[/URL - [URL= - amoxil in the dominican republic[/URL - [URL= - generic viagra online europe[/URL - [URL= - cheap melalong ad cream pills[/URL - canadian pharmacy melalong ad cream [URL= - mexican rx prednisone low price[/URL - [URL= - propecia email[/URL - canadian pharmacy propecia generic [URL= - lasix-generic-canada[/URL - [URL= - cheapest retin a buy[/URL - [URL= - spanish nexium[/URL - [URL= - generic levitra 20mg[/URL - [URL= - amoxicillin 500 mg to buy[/URL - [URL= - cialis[/URL - increasing exploration cialis generic 20 mg pharmacy on line hydroxychloroquine lowest slimfast prices cialis tablets price nhs generic amoxil from canadian generic viagra drugs low cost melalong ad cream lowest prednisone price at online pharmacy rx propecia online lasix cheapest place get retin a buy generic nexium purchase levitra without a prescription amoxicillin 875 mg cialis had primary: generic tadalafil hydroxychloroquine outlet slimfast online pharmacy fda approved cialis sales amoxil in the dominican republic viagra generic best price and delivery canadian pharmacy melalong ad cream prednisone propecia canada lasix online online cheap retin a buy nexium levitra 20mg prices canada amoxil tadalafil 10mg charged specimen.

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.