8

Mac OS 10.5.7 で GCC をクロスコンパイルしようとしています。GMP、MPFR、および MPC をインストールした後、次のコマンドを使用して GCC を構成しました。

../gcc-4.5.0/configure --target=$i586-elf --prefix=/usr/local/cross \
    --disable-nls \
    --enable-languages=c,c++,fortran,java,objc,obj-c++,treelang,ada \
    --without-headers --with-libiconv-prefix=/opt/local --with-gmp=/usr/local \
    --with-mpfr=/usr/local --with-mpc=/usr/local

このエラーが発生しました:

checking for the correct version of gmp.h... buggy but acceptable
checking for the correct version of mpfr.h... yes
checking for the correct version of mpc.h... yes
checking for the correct version of the gmp/mpfr/mpc libraries... no
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations.  Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/.  See also
http://gcc.gnu.org/install/prerequisites.html for additional info.  If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files.  They may be located in separate packages.

GCC が GMP、MPFR、および MPC のヘッダーを検出できたのに、ライブラリを検出できなかったのはなぜですか?

4

7 に答える 7

9

問題は、64 ビット コンパイラをビルドしようとしているときにライブラリが 32 ビット用である、またはその逆である可能性があると思われます。

最近、MacOS X 10.6.4 で GCC 4.5.1 をビルドできましたが、GMP、MPFR、および MPC ライブラリを自分でビルドし/usr/gnu64てインストールしました。 )。構成オプションも使用しました:

CC='gcc -m64'

64 ビット ビルドを強制します。Linux でも同様の問題があり (さらに、opt-functions.awk の正規表現の問題 - 開き括弧の前に 2 つのバックスラッシュを付けることで簡単に修正できます)、ビルドしてから MPFR および MPC ライブラリが更新されていることがわかりました。 macOS:

  • GMP 5.0.1 (4.2.4 の代わりに)
  • MPC 0.8.2 (0.8.1 ではなく)
  • MPFR 3.0.0 (2.4.2 の代わり)

これを書いてから、方法論を多少変更しました。私が今行っていることはInstall GNU GCC on Mac に記載されています。基本的に、私は GMP、MPC、MPFR の最新バージョンを入手し、それらのソース コードを GCC ソース ディレクトリに置き、GCC にライブラリをコンパイルさせます。これにより、GCC はライブラリの検索を処理します。

于 2010-08-18T02:47:24.883 に答える
6

使用する必要があります

--with-gmp=/usr/local/include \
    --with-mpfr=/usr/local/include --with-mpc=/usr/local/include

それ以外の

--with-gmp=/usr/local \
    --with-mpfr=/usr/local --with-mpc=/usr/local
于 2011-04-20T23:32:21.090 に答える
2

OX10.6.6でgcc-4.6.0をコンパイルしようとしても同じ問題が発生しました。私はgmp-4.3.2を使用していました; 代わりにgmp-5.0.1を使用すると、configureスクリプトは「CC = gcc-std = gnu99 CFLAGS = -O2 -pedantic -m64 -mtune = core2 -march = core2」を正しく推測し、それをmpfr(3.0。 1)およびmpc(0.9)であるため、これらまたはより新しいバージョンを使用している人は、このエラーを受け取るべきではありません。

于 2011-04-09T00:44:28.013 に答える
1

gmp、mpfr、mpc をそれぞれの Web サイトからダウンロードしてインストールすることをお勧めします。次に./configure、(ファイルがダウンロードされたフォルダーで)実行し、sudo make install.

GCC は Mac OSX (マウンテン ライオン) でコンパイルする必要があります。

mpc は mpfr と gmp に依存することに注意してください。

これを使用して、Mac OSX でピニオン カーネルをコンパイルしました。

于 2012-08-09T12:16:52.160 に答える
0

Mac ポート mpfr、libmpc、および gmp がインストールされているので、configure スクリプトにこれを追加することができました。

--with-mpc=/opt/local/var/macports/software/libmpc/0.8.2_0/opt/local
--with-gmp=/opt/local/var/macports/software/gmp/5.0.1_0/opt/local
--with-mpfr=/opt/local/var/macports/software/mpfr/3.0.0-p8_0/opt/local 

これは、ti msp430 ツールチェーンをコンパイルするためのものでした。

于 2011-06-28T13:11:26.353 に答える
0

同様の問題を解決しました。私のCPUはx86_64ですが、私のOSは32bitなので、GMP(5.0.2)をインストールすると64bitに設定しようとします。そこで、ABI=32 ./configure... のような構成で GMP を再コンパイルすると、この GCC の問題はなくなりました。

于 2011-10-17T13:55:12.923 に答える
0

Ubuntu 16.04 64 ビットでも同様の問題がありました。mpc-1.0.1.tar.gz、mpfr-3.1.6.tar.xz、gmp-6.1.2.tar.xzで解決

于 2017-09-27T18:25:17.010 に答える