今天有个程序使用两个静态库,静态库无源码,但是执行时发现库函数名有冲突
解决方法:把其中一个静态库变成动态库,并设置为只是用自身的符号表
具体过程:
1、先把.a文件分解成.o文件: ar -x liba.a
2、再用gcc重新链接成so:gcc -shared -fPIC -Wl,-Bsymbolic -o liba.so *.o
注:-Bsymbolic的意思是只是用自身的符号表