【问题标题】:gmp, mpc + mpfr: is not symbolic linkgmp, mpc + mpfr:不是符号链接
【发布时间】:2012-11-07 10:13:57
【问题描述】:

我构建了 gcc 4.6.1,当我运行 ldconfig 时,它会返回以下结果:

ldconfig: /usr/local/mpc/lib/libmpc.so.2 is not a symbolic link

ldconfig: /usr/local/gmp/lib/libgmp.so.3 is not a symbolic link

ldconfig: /usr/local/mpfr/lib/libmpfr.so.1 is not a symbolic link

这是我使用库构建 gcc 的方式:

tar jxf gmp-4.3.2.tar.bz2
cd gmp-4.3.2/
./configure --prefix=/usr/local/gmp
make
make install
cd ..

tar jxf mpfr-2.4.2.tar.bz2
cd mpfr-2.4.2/
./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp
make
make install 
cd ..

tar xzf mpc-0.8.1.tar.gz
cd mpc-0.8.1
./configure --prefix=/usr/local/mpc --with-mpfr=/usr/local/mpfr --with-gmp=/usr/local/gmp
make
make install
cd ..

tar jxf gcc-4.6.1.tar.bz2
cd gcc-4.6.1
./configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking -disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr/ --with-mpc=/usr/local/mpc/

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/
make
make install

cp gcc.4.6.1.conf /etc/ld.so.conf.d/gcc.4.6.1.conf
ldconfig
mv /usr/bin/gcc  /usr/bin/gcc_old
mv /usr/bin/g++  /usr/bin/g++_old
ln -s -f /usr/local/gcc/bin/gcc  /usr/bin/gcc
ln -s -f /usr/local/gcc/bin/g++  /usr/bin/g++

cp /usr/local/gcc/lib64/libstdc++.so.6.0.16 /usr/lib64/.
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
ln -s -f /usr/lib64/libstdc++.so.6.0.16 /usr/lib64/libstdc++.so.6

请说我不需要重建 gcc!这个符号链接问题真的会影响程序吗?或者它不会有任何区别,它会时不时地弹出,例如当我是yum install 某些事情时也是如此。提前致谢。

【问题讨论】:

    标签: gcc linker gmp mpfr mpc


    【解决方案1】:

    我通过使用./contrib/download_prerequisites 命令安装gmp、mpc 和mpfr 解决了这个问题,该命令会在安装过程中下载所需文件并设置符号链接。

    我的整个构建是:

    tar -xzvf gcc-4.6.2.tar.gz
    cd gcc-4.6.2
    ./contrib/download_prerequisites
    cd ..
    mkdir objdir
    cd objdir
    $PWD/../gcc-4.6.2/configure --prefix=/opt/gcc-4.6.2 
    make
    make install
    
    ldconfig
    mv /usr/bin/gcc  /usr/bin/gcc_old
    mv /usr/bin/g++  /usr/bin/g++_old
    ln -s -f /usr/local/gcc/bin/gcc  /usr/bin/gcc
    ln -s -f /usr/local/gcc/bin/g++  /usr/bin/g++
    
    cp /usr/local/gcc/lib64/libstdc++.so.6.0.16 /usr/lib64/.
    mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
    ln -s -f /usr/lib64/libstdc++.so.6.0.16 /usr/lib64/libstdc++.so.6
    export CC=gcc
    export CXX=g++
    

    我不知道如何将 CC 和 CXX 变量完全链接到新的 gcc 和 g++,但它可以工作!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-10
      • 2012-03-04
      • 2023-03-25
      • 1970-01-01
      • 2012-03-16
      • 1970-01-01
      • 2021-08-21
      • 2011-06-01
      相关资源
      最近更新 更多