当前位置: 技术问答>linux和unix
如何让两套系统共享库共存
来源: 互联网 发布时间:2015-08-15
本文导语: 在不改变原有系统共享库(如ld-linux.so, libc.so等)以及使用这些库的应用程序的基础上,怎样让我自己编译出的新库(新的ld-linux.so,新的libc.so等)与之共存? 即让原有的程序使用原有的库,让基于新库开发的程序自...
在不改变原有系统共享库(如ld-linux.so, libc.so等)以及使用这些库的应用程序的基础上,怎样让我自己编译出的新库(新的ld-linux.so,新的libc.so等)与之共存?
即让原有的程序使用原有的库,让基于新库开发的程序自动使用新库。
主要是因为我的环境是嵌入式系统,容不得我有大幅度的修改,不知上面的想法可行不?具体该如何做?
我试着将新库与新程序放在同一个目录下,并把当前目录加入搜索路径,新程序可以找到新的c和c++共享库,但是这些库的加载是依赖于ld-linux.so的,系统似乎并没有使用当前目录下的ld-linux.so,而仍然用的是老的ld-linux.so。问题,系统在使用ld-linux.so时有何特别之处吗?怎样让系统能自行选择不同版本的ld-linux.so?
即让原有的程序使用原有的库,让基于新库开发的程序自动使用新库。
主要是因为我的环境是嵌入式系统,容不得我有大幅度的修改,不知上面的想法可行不?具体该如何做?
我试着将新库与新程序放在同一个目录下,并把当前目录加入搜索路径,新程序可以找到新的c和c++共享库,但是这些库的加载是依赖于ld-linux.so的,系统似乎并没有使用当前目录下的ld-linux.so,而仍然用的是老的ld-linux.so。问题,系统在使用ld-linux.so时有何特别之处吗?怎样让系统能自行选择不同版本的ld-linux.so?
|
感觉不大可行,因为ld-linux.so是处理动态加载的模块。先找个环境试试看了。
|
风险很大,曾经有过很惨痛的教训(尤其是libc),建议不要轻易改动。