3

カスタムディレクトリで、GCC 4.8.0 をより大きなシステムの一部としてコンパイルしようとすると。このサーバーには sudo 権限がないため、すべてをソースから構築しています。ただし、依存関係のある gmp、mpfr、および mpc を機能させることができません。構成を実行すると、次のようになります。

configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify their locations.

config.log は私に与えます:

configure:5619: checking for the correct version of the gmp/mpfr/mpc libraries
configure:5650: gcc -o conftest -g -O2 -Wno-error=unused-value -I$SRC/gmp/ -I$SRC/mpc/src/.libs -lmpc -lmpfr -lgmp >&5
/usr/bin/ld: cannot find -lmpc
collect2: ld returned 1 exit status

そのため、システム自体にインストールする権利がないため、mpfr、gmp、および mpc を入手して、ソースから手動でビルドしようとしました。ライブラリを取得するために ./contrib/download_prerequisites を実行しました。構成を再度実行しましたが、同じエラーが発生しました。だから私もそれらをコンパイルし、私のgccディレクトリで私はやった:

cd mpfr; ./configure; make
cd ../gmp; ./configure; make
cd ../mpc; ./configure --with-mpfr-include=$SRC/mpfr --with-mpfr-lib=$SRC/mpfr/.libs/ --with-gmp=$SRC/gmp; make; cd ..

--with-mpfr を使用するだけでは、何らかの理由で機能しないことに注意してください。

cd $SRC/build
  ../configure \
    --build=x86_64-linux-gnu \
    CC=gcc \
    CFLAGS='-g -O2 -Wno-error=unused-value' \
    --disable-bootstrap --enable-checking=none \
    --disable-multi-arch --disable-multilib \
    --enable-languages=c,c++ \
    --with-gmp-lib=$SRC/gmp/.libs \
    --with-gmp-include=$SRC/gmp/ \
    --with-mpc-include=$SRC/mpc/src \
    --with-mpc=$SRC/mpc \
    --with-mpfr-lib=$SRC/mpfr/.libs \
    --with-mpfr-include=$SRC/mpfr \
    --prefix=$SRC/prefix

$SRC は私の gcc ディレクトリです。ただし、最後のコマンドで、build/config.log に次のエラーが記録されました。

gcc -o conftest -g -O2 -Wno-error=unused-value -I$SRC/gmp/ -I$SRC/mpfr -I$SRC/mpc/src    conftest.c  -L$SRC/gmp/.libs -L$SRC/mpfr/.libs -L$SRC/mpc/lib -lmpc -lmpfr -lgmp >&5
/usr/bin/ld: cannot find -lmpc
collect2: ld returned 1 exit status

make mpc を実行した後、lib ディレクトリや、共有オブジェクト ファイルを含むものがないことは明らかです。そのため、gcc を mpc ライブラリとリンクする方法がわかりません。

私が何をすべきか知っている人はいますか?

4

0 に答える 0