1

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特定のことをしていたときなど、時々ポップアップします。前もって感謝します。

4

1 に答える 1

0

コマンドを使用してgmp、mpc、およびmpfrをインストールすることで、この問題を修正しました。これにより./contrib/download_prerequisites、インストールプロセス中に必要なファイルがダウンロードされ、シンボリックリンクが設定されます。

私の全体のビルドは次のとおりです。

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++ に完全にリンクする方法はわかりませんが、うまくいきます。

于 2012-11-14T10:43:04.283 に答える