zoukankan      html  css  js  c++  java
  • glibc编译安装

    glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。

    wget https://kojipkgs.fedoraproject.org//packages/glibc/2.30.9000/1.fc32/src/glibc-2.30.9000-1.fc32.src.rpm

    ../configure

    make && make install

    【Makeconfig:42: *** missing separator. Stop.】【configure: error: you must configure in a separate build directory】解决办法:

      新建一个目录,然后进入该目录,用绝对路径编译。(一般在解压目录新建 ./glibc_build)

    【configure: error:

    *** These critical programs are missing or too old: compiler

    】解决:

    更新 gcc

    *** On GNU/Linux systems the GNU C Library should not be installed into
    *** /usr/local since this might make your system totally unusable.
    *** We strongly advise to use a different prefix.  For details read the FAQ.
    *** If you really mean to do this, run configure again using the extra
    *** parameter `--disable-sanity-checks'.

    出现这个错误的原因在于,如果没指定prefix,则系统把这个程序装在/usr/local目录下。但是,c标准库要求必须安装在与根文件系统相同的分区中,否则不能用。但是/usr这个挂载点可能处在外部的分区。

    解决方法就是指定prefix到/usr,这时候configure程序会自动把必须的内容装在/lib下(这个目录肯定与根目录同分区),扩展内容再装到/usr/lib下。

    【rm -rf /lib64/libc.so.6后出现

    ln -s /lib64/libc-2.14.so /lib64/libc.so.6

    l error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

    当出现上面的状况时候,可以使用以下方法解决(假设libc-2.14.so已经拷贝到/lib64/目录下,“LD_PRELOAD”是一个环境变量,定义在程序运行前优先加载的动态链接库。):

    LD_PRELOAD=/lib64/libc-2.14.so ln -s /lib64/libc-2.14.so /lib64/libc.so.6
    当然如果升级失败,还可以使用下面命令还原至系统升级前的版本libc-2.12.so:

    LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6

    或者可以安装到其他目录:

    ../configure  --prefix=/opt/glibc

    然后通过环境变量来指定glibc

    export LD_PRELOAD=/opt/glibc/libc-2.14.so

    export LD_LIBRARY_PATH=/opt/glibc/lib

  • 相关阅读:
    【转载】Linux 内核启动时间分析
    hackbench
    c用户组函数
    c环境变量操作函数
    c网络接口套接字函数
    c信号处理函数
    c进程操作函数
    c文件内容操作函数
    c文件操作
    c数据结构和算法
  • 原文地址:https://www.cnblogs.com/cyanrose/p/11492236.html
Copyright © 2011-2022 走看看