首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

棘手有关问题,第三方库的链接有关问题

2012-09-29 
棘手问题,第三方库的链接问题在一个进程中,用到了第三方动态库A。而这个第三方库又用到了另外一个库B,B是以

棘手问题,第三方库的链接问题
在一个进程中,用到了第三方动态库A。而这个第三方库又用到了另外一个库B,B是以静态库的方式链接到A中的,而且A并没有透露出它使用了B。假设A中的B的版本是1.0,刚好此时我的项目代码里头需要用到B库的2.0版本。请问如何在不修改A的状态下使用B的2.0版本???
补充一下,这是在GCC的编译器环境下面进行的

[解决办法]
那就直接用啊

你是怕链接冲突还是啥?
[解决办法]
貌似没有方法了,只能升级A库,找到它使用B2.0的版本
正常情况下一般正规库都应该保持向下兼容.
我连接OgreSDK_mingw_v1-7-2就用到了boost_1_44
一样的, 而我要用boost_1_49_0,我直接升就好了,
也可以用.嘿嘿.
楼主应该是用了某些个人完成的库就造成了这种情况,
建议项目中选库时一定要慎重.
[解决办法]
A是静态链接B的,你是没有办法替换的,除非重新编译A。
再说了动态库使用啥,你的主程序是不需要知道的。
[解决办法]
简单说,没可能

你的B库是静态链接到A里去了,也就是A中所有对B库接口的调用都已经被实际的链接到B库中的函数,你想替换都无从替换

如果是动态链接倒是可以,只要接口一致,改下LD_LIBRARY_PATH即可
[解决办法]

探讨

A是静态链接B的,你是没有办法替换的,除非重新编译A。
再说了动态库使用啥,你的主程序是不需要知道的。

热点排行