关于一个程序中库文件不同版本的冲突有关问题

关于一个程序中库文件不同版本的冲突问题
现在要把自己写的模块A合到模块B中,2个模块都使用了sqlite库
模块A版本.so文件调用sqlite_ver是3.7.14显示加载调用
模块B是3.7.8隐式调用
把模块A的sqlite库名字改成和模块B不一样的,例如libsqlite3.so改成libsqliteex3.so
模块A的路径使用libsqliteex3.so,环境变量都是包括这2个库文件的
发现在模块A调用接口时返回的版本是3.7.8
而且在调用open_v2这个函数时,出现段错误,调用的函数指针不是空的
查了一下core,是在sqlite内部的某个地方,
困扰了好长时间,请帮忙指导一下
------解决方案--------------------
这是程序链接导致的版本异常。A和B中都有同样名字的方法,所以链接程序根据自己的算法,随便选了一个将它链接到最终可执行文件中。这和你的库文件名没有啥关系。
编译过程中,确实可能会产生同一个函数的许多“副本”,这些副本最终会在链接时“去重”。