今天有个程序使用两个静态库,静态库无源码,但是执行时发现库函数名有冲突

解决方法:把其中一个静态库变成动态库,并设置为只是用自身的符号表

具体过程:

1、先把.a文件分解成.o文件: ar -x liba.a

2、再用gcc重新链接成so:gcc -shared -fPIC -Wl,-Bsymbolic -o  liba.so *.o

注:-Bsymbolic的意思是只是用自身的符号表

 

 

相关文章: