heizidelanqiu 发表于 2012-10-25 21:51

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

现在要把自己写的模块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内部的某个地方,
困扰了好长时间,请帮忙指导一下

zzmfish 发表于 2012-10-26 11:24

仅仅修改so的文件名没有用,最好是统一版本或静态编译

heizidelanqiu 发表于 2012-10-26 19:15

为什么如果同一分库文件的不同版本都使用
运行时链接就没有问题
一个使用加载链接 一个使用运行链接就会变成加载链接的符号?
页: [1]
查看完整版本: 关于一个程序中库文件不同版本的冲突问题