C
作業プロジェクトでは、make
さまざまなターゲットのために構築されており、そのうちの1つは明らかにpowerpc-405です。ツールチェーンがインストールされていないため、特定のターゲットのビルドに失敗しました。
make[7]: /opt/crosstool/gcc-4.2.4-glibc-2.3.6/powerpc-405-linux-gnu/bin/powerpc-405-linux-gnu-gcc: Command not found
尋ねる:Linuxの世界でよく見られる「ソースコードをダウンロードして直接ビルド」するパラダイムの私の理解は非常に不安定です。誰かが私がこれを行う方法を説明できますか?エラーで指摘されたツールバーのみ?
これまで私は行かなければならないと決めた/考えるftp://gcc.gnu.org/pub/gcc/releases/gcc-4.2.4/。
尋ねる:ここで何をダウンロードする必要がありますか? FortranやJavaのようなものは無視しても大丈夫だと思います。しかし、{gcc-4.2.4、gcc-core-4.2.4、gcc-g++-4.2.4、gcc-testsuite-4.2.4}からどのようなものをダウンロードする必要がありますか?みんな?
尋ねる:正しいタールボールセットをダウンロードして解凍した後、次のステップは正確に何ですか?私は最初は最終的に注文を実行することを知っていましたが、configure; make; make install
その前後に何をすべきか全く知りませんでした。
尋ねる:上記のエラーが見つかりますglibc-2.3.6
。これは絵のどこに当てはまりますか?上記のように、私が訪問しているftpサイトでは、単に言及していますgcc-4.2.4
。 「融合」が何であるかgcc-4.2.4
、そしてglibc-2.3.6
ビルドエラーを解決する目的が何であるかは不明です。
尋ねる:言及したFTPサイトは「一般」サイトのように見えますgcc
。つまり、ファイル名で判断してみるとpowerpc-405
。私した"powerpc"と"gcc"の様々な組み合わせをインターネットで検索したが、powerpc-405
特定のgcc
。
>uname -a
Linux linuxbox 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
この具体的な例では、Linuxユーザー/開発者がクロスコンパイラツールチェーンをダウンロードしてコンパイルする場所をどのように知っているかを理解したいと思います。
答え1
Linuxの世界でよく見られる「ソースコードをダウンロードして直接ビルド」するパラダイムの私の理解は非常に不安定です。エラーに記載されているツールチェーンに対してこれを行う方法を説明できる人はいますか?
基本的に、次のクイックスタートとトラブルシューティングのセクションを読んでください。http://www.kegel.com/crosstool/current/doc/crosstool-howto.html
より一般的には、次を参照してください。ソースコードからプログラムをコンパイルしてインストールする方法ソースコードからコンパイルする場合。
これはあなたの質問に対する答えになります。
ここで何をダウンロードする必要がありますか? FortranやJavaのようなものは無視しても大丈夫だと思います。しかし、{gcc-4.2.4、gcc-core-4.2.4、gcc-g++-4.2.4、gcc-testsuite-4.2.4}からどのようなものをダウンロードする必要がありますか?みんな?
Crosstoolがそのアイテムをダウンロードしてくれます!
正しいタールボールセットをダウンロードして解凍した後、次のステップは正確に何ですか?結局のところ、設定; make; makeインストールコマンドを実行するという最初の理解がありますが、前後に何をすべきかはわかりません。
crosstoolはあなたのためにそれをコンパイルします。
もっと一般的に言えば、必要なソースコードをダウンロードする前に、まずウェブサイトでビルドの手順を読んでください。
通常、状況は./configure && make && sudo make install
次のとおりです。
一時ディレクトリにソースコードを抽出し、そのディレクトリにCDを移動して実行すると、./configure
すべての前提条件が満たされていることを確認します。必要な dev(debian)/devel(redhat/suse) パッケージに欠落しているライブラリが記載されています。その項目を見つけてインストールし、もう一度やり直してください./configure
。
完了し、エラーがない場合は発行できますmake
。
シームレスにエラーなく完了して発行できることを願っていますsudo make install
。
時には設定の代わりにautogen.shが表示されます... Webサイトの指示を読んでください。
エラーにglibc-2.3.6が記載されていることがわかります。これは絵のどこに当てはまりますか?上記のように、私が使用しているftpサイトにはgcc-4.2.4のみが記載されています。ビルドエラーを解決するために、gcc-4.2.4とglibc-2.3.6の「マージ」に関連する内容は明確ではありません。
glibc は使用される C ライブラリです。ターゲットプラットフォームのcライブラリは互換性のあるバージョンでなければなりません。それ以外の場合は問題が発生します。繰り返しますが、crosstoolはそれを処理します。
したがって、glibcはDLLなどのacライブラリであり、gcc(Cコンパイラ)でコンパイルされたすべてのプログラムで使用されます。 gccは、ソースコード(テキストファイル)を特定のプラットフォーム/glibcバージョンの組み合わせのバイナリ、実行可能ファイル、およびライブラリにコンパイルします。
lddを使用して、特定のプログラム(たとえば)の依存関係を表示できますldd /usr/bin/gawk
。
言及されたFTPサイトは「一般」gccのように見えます。つまり、ファイル名で見て powerpc-405 とは関係のないようです。私は正しい道を進んでいるのか、それとも別の場所を見なければなりませんか?私は「powerpc」と「gcc」のさまざまな組み合わせを検索しましたが、powerpc-405を引き起こす特定のgccのように見えるものが見つかりませんでした。
gccソースコードは、さまざまなターゲットプラットフォームに合わせてコンパイルできます。ここでは、プラットフォームに依存しないソースコードを見ることができ、1つのソースがすべて適しています。