[cpp] Freebsd 中共享库中函数冲突的问题
sunpluto
sunpluto2004 at yahoo.com.cn
Wed Apr 5 10:27:05 CST 2006
最近在写一个 PHP 的 C++ 共享库插件
编译插件共享库时使用了自己的图形库(静态库,连接入共享库插件中)
而自己的图形库中使用了经过改动过的 jpeglib 库(版本号 61)
使用 ldd 察看 php 执行文件时,发现其已经依赖了系统提供的 libjpeg.so.9 (版本号为 62 的 jpeglib 库)
因此在使用 ./php myscript.php 执行脚本利用自己的共享库插件读取图片时,无法调用到自己图形库中的 jpeglib 库(版本号 61)的相关读取函数,反而调用了 php 加载的 libjpeg.so.9 中的相关读取函数,导致了一个 libjpeg 库的版本不兼容问题,提示如下:
Wrong JPEG library version: library is 62, caller expects 61
在经过一个晚上后,再次调用时遽然没有发生版本冲突的问题,但重新编译插件共享库后,问题依旧
请问,Unix 系统中,应用程序使用多个共享库时,若不同共享库中存在相同函数时,怎样能保证 A 共享库中的函数在调用这些存在冲突的相同函数时,不会调用到 B 等其他共享库的相同函数
不知道我的问题表述的是否清楚
我找了好几天了,仍未解决,希望能在这个社群里找到答案
先谢谢大家啦
致
礼
---------------------------------
雅虎1G免费邮箱百分百防垃圾信
雅虎助手-搜索、杀毒、防骚扰
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://codingnow.com/pipermail/cpp/attachments/20060405/127d35af/attachment.html
More information about the Cpp
mailing list