在一个系统中安装运行多个版本的Glibc-实战篇

上回说到发现了一个神奇的项目LFS,从官网上可以看到,这个项目是教你怎么完全用源码编译一个自已定制化的Linux系统.这跟我们之前说的安装运行多个Glibc有什么联系呢? 来来来,前情提要,上篇 讲到在程序运行的时候会依赖很多动态库,其中Glibc就是一个非常重要的库,程序通过加载ld-linux.so库对这些依赖库的路径进行查找.而ld-linux.so的路径是写死在编译器gcc中的,换一句话说,就是在一个程序在编译的时候,默认情况下它需要加载的ld-linux.so路径已经写死了(这里编译Glibc的时候会生成对应版本的ld-linux.so文件的,所以不同版本的Glibc会生成版本的ld-linux.so哦). 所以需要运行多个版本的Glibc,有两个方法,一个是在编译新的程序时通过-Wl,–dynamic-linker= 参数指定ld-linux.so路径指向其它版本 ,第二是修改gcc源码中ld-linux.so的路径,再用修改过的gcc编译新的程序,这样编译出来的所有程序ld-linux.so的路径都会指向其它版本生成的了.很容易看出来