0

私の問題:

VirtualBox 3 i386 マシンに OpenSolaris 2009.06 をインストールして、GCC 4.4.2 をコンパイル、ビルド、およびインストールしようとしています。しかし、make を実行すると、この同じエラーが発生し続けます。

> checking whether ln -s works... yes
checking for i386-pc-solaris2.11-gcc... /src/gcc-4.4.2/host-i386-pc-solaris2.11/gcc/xgcc -B/src/gcc-4.4.2/host-i386-pc-solaris2.11/gcc/ -B/usr/gnu/i386-pc-solaris2.11/bin/ -B/usr/gnu/i386-pc-solaris2.11/lib/ -isystem /usr/gnu/i386-pc-solaris2.11/include -isystem /usr/gnu/i386-pc-solaris2.11/sys-include
checking for suffix of object files... configure: error: in `/src/gcc-4.4.2/i386-pc-solaris2.11/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgcc] Error 1
make[2]: Leaving directory `/src/gcc-4.4.2'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/src/gcc-4.4.2'
make: *** [all] Error 2

試みられた解決策:

  1. 私はこの質問への答えを試しました: OpenSolaris 2009.6 ieで gcc 4.4.0 をコンパイルする問題

    ./configure --prefix=/usr/gnu --with-gmp=/usr/gnu --with-mpfr=/usr/gnu --with-as=/usr/sfw/bin/gas --with-gnu -as --with-gnu-ld

  2. GNU GCC のプラットフォーム固有のソリューションを試してみました: GNU Solaris 固有のビルド手順 ie

    ./configure --prefix=/usr/gnu --with-gmp=/usr/gnu --with-mpfr=/usr/gnu --with-as=/usr/sfw/bin/gas --with-gnu -as --with-ld=/usr/ccs/bin/ld --without-gnu-ld --enable-shared

上記の 2 つのソリューションで ./configure を実行しても、同じエラーが発生します。

どんな助けでも大歓迎です!ありがとう!

4

1 に答える 1

1
  • 既存の GCC でプログラムをコンパイルできますか?

    そうでない場合は、それを解決する必要があります。

    可能であれば、その巨大な 7 つの引数のコマンド (「i386-pc-solaris2.11-gcc をチェックしています」と書かれているコマンド - なぜこれらの 7 つの引数があるのですか?) を確認する必要があります。

  • 「ブートストラップの作成」を実行していますか?

    そうでない場合、そうするとどうなりますか?

    もしそうなら、それは処理のどこにありますか? (これはステージ1ですか、それともステージ2ですか、それとも何ですか?)

  • GCC のソースが /src/gcc-4.4.2 にあり、オブジェクト ファイルが /src/gcc-4.4.2-obj にある、推奨されるセットアップを使用していますか?

    そうでない場合は、そうしてください。使用する:cd /src/gcc-4.4.2-obj; ../gcc-4.4.2/configure ...

  • どのシェルを使用していますか?

    通常の Solaris 10 (OpenSolaris ではなく、Intel ではなく SPARC) では、環境で CONFIG_SHELL=/bin/ksh を設定してコンパイルを行う必要があります (デフォルトでは、/bin/sh を使用しますが、/bin/sh を使用します)。 Solaris 10 は Bourne シェルであり、Java セクション (IIRC) の奥深くに、Bash/Korn/POSIX シェル表記を使用するスクリプトがあります$(cmd ...))。ただし、これは通常、処理のかなり後の段階に影響します。

ただし、Solaris 10 で GCC 4.4.2 を問題なく使用できます (ブートストラップ コンパイラとして GCC 4.4.1 を使用)。

于 2009-10-24T03:55:21.850 に答える