当前位置: 技术问答>linux和unix
两个链接库中函数同名的问题
来源: 互联网 发布时间:2016-10-16
本文导语: 两个动态库A和B中都有函数C,程序调用A中的一个函数D,D函数内部调用了函数C。 然后问题就出来了,程序执行时D函数没有调用A中的函数C,却链接到了B中的函数C, 这种问题该如何解决呢? | ...
两个动态库A和B中都有函数C,程序调用A中的一个函数D,D函数内部调用了函数C。
然后问题就出来了,程序执行时D函数没有调用A中的函数C,却链接到了B中的函数C,
这种问题该如何解决呢?
然后问题就出来了,程序执行时D函数没有调用A中的函数C,却链接到了B中的函数C,
这种问题该如何解决呢?
|
调整一下程序编译时两个动态库A/B的连接顺序试试?
|
如果
1. 其他模块不会调用A中的函数C
2. 函数D与函数C在同一个编译单元(同一个.c中)
那么可以吧A中的函数声明和定义之前加上static
如果不能满足条件1和2,建议更改函数名。
1. 其他模块不会调用A中的函数C
2. 函数D与函数C在同一个编译单元(同一个.c中)
那么可以吧A中的函数声明和定义之前加上static
如果不能满足条件1和2,建议更改函数名。