4

私は完全に最近の最新のgcc環境をセットアップしようとしています...基本的にはgcc4.6.3とbinutils2.22です。Xcode4.2.1に付属しているかなり古いgcc4.2.1(llvm)ではありません。私の問題はコンパイルではありません(少なくとも今のところ)。binutils、gcc、および両方を同時に完全にコンパイルできます。ただし、コンパイルしようとするたびに、configureの出力の最後に次のようなものが表示されます。

ターゲットを見つける場所をチェックするar...コンパイルされ
たターゲットを見つける場所をチェックする...ホストツールターゲットを
見つける場所をチェックするcc...コンパイルされ
たターゲットc++を見つける場所をチェックする...コンパイルされた場所を
チェックするlibstdc++のターゲットc++を
見つけるために...ターゲットdlltoolを見つけるためにコンパイルされたチェック
...ターゲットgccを見つけるためにコンパイルされたチェック
...ターゲットgcjを見つけるためにコンパイルされた
チェック...ターゲットgfortranを見つけるために...ターゲットgccgoを見つける場所をチェックするコンパイルされた...ターゲットを見つける場所をチェック するホストツールld...
ターゲットlipoを見つける場所を チェックするホストツール...ホストツール


ターゲットnmを見つける場所をチェックする...ターゲットを見つける場所をチェック
するobjdump...ターゲットを見つける
場所をチェックするranlib...
ターゲットストリップを見つける場所をコンパイルする...コンパイルする場所を
チェックするターゲットwindresを見つけるために...ちょうどコンパイルさ
れたターゲットwindmcを見つける場所をチェックする...ちょうどコンパイルされた

この出力を取得するために、gccソースフォルダーにld、opcodes、bfd、gas、gprof、およびbinutilsのシンボリックリンクを作成しました...(それが役立つ場合)

ご覧のとおり、ほとんどのソフトウェアの「コンパイル済み」バージョンを入手できます。asとldをコンパイルする方法がわかりません。ldフォルダー(binutilsパッケージにある)のREADMEファイルを読みましたが、次のように実行されます。

すべてを作る-ld

私はそうします、そして私がすでにソースを「作った」ということで、それは私に何もすることが残っていないことを教えてくれます...

私が今考えることができる唯一のことは、ldを含まないようにパスを一時的に変更することです。これはかなり簡単でしょう...

別名クイックチェック

whereis ld

とにかく、これを考えた直後に私は、gcc(または新しいバージョンのld(もし私が仕事をするようになった場合))をリンクするものが何もないので愚かだと思いました

したがって、結論として、私はldの新しいコピーをコンパイルしようとしています... 事実:

  • Mac OSXLionを実行しています。
  • Mac OS X Lion(gcc 4.2.1)に付属しているデフォルトのgccを使用してgcc4.6.3をコンパイルしようとしています。
  • configureスクリプトは、新しいリンカーとアセンブラーをコンパイルしたくないと考えているようです。
  • 動作するgccとbinutilsを正常にビルドしましたが、新しいリンカーとアセンブラーはありません。
  • --with-ld=yesおよび--with-gold=noオプションを指定してbinutilsgccをコンパイルしようとしましたが、何も実行されなかったようです。
  • gccv4.2.1を使用してgmpv5.0.4、mpfr v3.1.0、およびmpc v0.9をビルドし、gccおよびbinutilsの構成で使用されたものと同じプレフィックスでインストールしました。
  • 構成ごとに、gmp、mpfr、およびmpcの場所を明示的に示しています。
  • gccとは別にgmp、mpfr、mpcをビルドしました(そうすると、ビルドエラーが発生しました)。
  • gcc、binutils、gmp、mpfr、およびmpcはすべて、ソースディレクトリのサブディレクトリではない別のディレクトリにビルドされます(gccのインストール手順で推奨されています)。
  • 次のオプションを使用してgccをコンパイルしています 。../gcc
    -4.6.3/configure--prefix = $ PREFIX --with-gmp = $ PREFIX --with-mpfr = $ PREFIX --with-mpc = $ PREFIX- -enable-checking = release --program-suffix =-4.6.3 --enable-ld = yes --enable-gold = no
  • 私は主にこのチュートリアルに従いました。
  • コンピューターに他のコンパイラーがないため、ここで読んだmac os xのデフォルトのllvmコンパイラー(以前にgcc 4.2.1として説明したもの)を使用せざるを得ませんが、gcc-4.2はありません。私のコンピューターで。
  • コンパイルしたばかりの新しいバージョンのgcc(gcc-4.6.3)を使用してgcc-4.7.0(最新のスナップショット)をコンパイルすると、コンパイラエラーが発生します(環境変数CCおよびCXXを設定しました)。
  • 私はbinutilsよりも最初にgccをコンパイルしようとしましたが、その逆で、最終的にはbinutilsを使用してgccをビルドすることが道であると判断しました。上記の出力は、両方を同時にコンパイルしたものです。
  • ゴールドに関するこの小さな投稿 を読み、-enable-gold--enable-ldを追加してみました。彼らは何も変えなかった
  • 私が物事をした順序:
    1. gmpをコンパイルします。
    2. インストールします。
    3. mpfrをコンパイルします。
    4. インストールします。
    5. mpcをコンパイルします。
    6. インストールします。
    7. ld、gas、binutils、opcodes、gprof、bfdのメインgccsrcディレクトリへのシンボリックリンクを作成します。
    8. gccを構成します。
    9. その「ステータスレポート」を見つけます。
    10. おそらくldとasを構築する別の方法を考えてください。
    11. それで失敗します。
    12. StackOverflowに進みます。

「fazo」が言ったように、私はbinutilsをどのようにコンパイルしたかについてはあまり誰にも話していません...だからここにあります...

私は最初にgccをコンパイルしようとしましたが、gccを使用してbinutilsをビルドするよりも、正常にコンパイルされましたが、ld、as、またはgoldさえもありませんでした。次に、llvmコンパイラを使用してbinutilsをビルドしてからgccをビルドしてみました。それもうまく機能しましたが、それでもld、as、またはgoldはありませんでした。最後に、 binutilsのいくつかのアイテムにシンボリックリンクを作成でき、gccがそれらを検出してビルドすることをここで読みました...私はそうしました。そしてgccはそれらのほとんどを見つけました(ld、opcodes、bfd、gas、gprof、binutilsのシンボリックリンクをgccディレクトリに置く前に述べたように)ここでの私の実際の問題は、configureスクリプトに新しいアセンブラーとリンカーをコンパイルするように指示することです。また、私を困惑させるのは、binutils READMEフォルダーに、単なる./configure make make installがすべてのツールをビルドしてインストールすると言っていることです。私は、これが当てはまらない理由を理解しようとしています。

最終的なコマンドは次のようになります。../binutils-2.22/ configure --prefix = $ PREFIX --with-gmp = $ PREFIX --with-mpfr = $ PREFIX --with-mpc = $ PREFIX --program-接尾辞=-4.6.3--enable-ld--with-gnu-as --with-gnu-ld

それでも私はまだldもガスもありません。

どんな助けでも大歓迎です!(また、私が提供していない情報が必要な場合は、質問してください)

ありがとう... :)

4

3 に答える 3

3

標準ビルド (configure;make) では、結果の名前が異なります。Gas-new と gld-new かそこら。

OS X は通常 binutils を使用せず、Apple 独自の Mach-O リンカ (cctools) を使用することに注意してください。成功したとしても、実行可能な解決にはつながらないかもしれません

于 2012-03-06T12:27:09.567 に答える
1

基本的にはMacの問題であることに気付きました。Ubuntuをインストールして入手した後、リンカとアセンブラは問題なく構築されました... gccのコンパイルにまだ少し問題がありますが、それはDebianの新しいマルチアーキテクチャサポートのためです...しかし、これは別の問題です...助けてくれてありがとうマルコ・ファン・デ・フォールト

于 2012-03-19T21:50:11.687 に答える