『手を取って自分のLinuxシステムを構築することを教える』学習ノート(4)

2536 ワード

アセンブラリンク(Binutils)
これはパッケージです.このパッケージは実はツールセットで、アセンブリプログラムがバイナリファイルを生きて読むためのプログラムがたくさん含まれています.
CC
GCCのC言語コンパイラを使用するコマンドの別名です.
CXX
コマンドの別名で、GCCのC++コンパイラを指定します.
CFLAGS
Cプログラムのコンパイル時にコンパイラに渡すパラメータを設定します.
CXXFLAGS
C++プログラムのコンパイル時にコンパイラに渡すパラメータを設定します.
LDFLAGS
リンク中に使用するパラメータを設定します.
指定したディレクトリをmakeコマンドで指向処理する方法
makeコマンドの-Cパラメータを使用すると、この目的を達成できます.
-Cパラメータの後に続くディレクトリは、makeコマンドで処理されるオブジェクトディレクトリです.
makeコマンドはパラメータを渡す機能をどのように使用しますか?
makeの後ろに使用したいパラメータのキー値ペアを直接接続することができます.後でコンパイル中にこのキー値ペアを使用すると、設定したパラメータを直接利用してコンパイルされます.
   

    make -C ld LIB_PATH=/tools/lib

          make   ld         ,        LIB_PATH     ,           。

GCCのコンパイルパラメータ--disable-nlsはどういう意味ですか?
このコマンドの後ろのnlsのフルネームはnational language supportの略なので、makeがそんなに多くの言語ファイルをコンパイルしないようにすることで、コンパイル時間が短縮され、コンパイル後のファイルも小さくなるという意味です.
GCCのコンパイルプロセスはどうなっていますか?
まずシステムのC言語で、GCCソースのC言語をコンパイルして、それからGCCソースの中の他の言語をコンパイルします.
なぜGCC Bootstrapコンパイル方式があるのですか?
GCC Bootstrapというコンパイル方式の生成は安全上考慮されている.
結局、GCCを使用してソースコードをコンパイルすると、GCCコンパイラに問題が発生すると、コンパイルしたコードに問題があるに違いありません.
GCCコンパイラが正しいことを保証する必要があります
GCC Bootstapというコンパイル方式を「自己コンパイル方式」と呼ぶのは、ある程度彼のコンパイル過程が奇抜だからだ.
ではBootstrapコンパイルプロセスは何ですか?
まず、GCCを使用してGCCソースコードをコンパイルし、C言語コンパイラを生成します.
次に、前のステップでC言語コンパイラを生成し、GCCソースコードを再コンパイルして、複数の第2のC言語コンパイラを生成します.
そしてこの2つのC言語コンパイラを比較し、同じであればこのGCCコンパイラに問題がないことを示します.
その後、2番目のC言語コンパイラによって他のコードがコンパイルされます.
彼が2度もコンパイルしたC言語コンパイラは、同じGCCソースコードでコンパイルされているので、このコンパイルプロセスは「セルフコンパイル」とも呼ばれ、自分でコンパイルしているのでしょうか.
どうやってBootstrapコンパイルを開き、どうやって閉じますか?
なお、初期のGCCバージョンでは、デフォルトではBootstrap方式ではコンパイルされていませんが、コンパイル中にこの方式を指定し、「make bootstrap」でコンパイルする必要があります.
その後4.3以上のバージョンではデフォルトでローカル方式のコンパイルでこの方式がオンになり、makeを使用してもmake bootstrapを使用してもbootstrap方式でコンパイルされ、閉じる方法はGCCを構成する過程で「--disable-bootstarp」パラメータを加えることです.
Glibcの役割は何ですか?
GlibcはCライブラリで、その中のライブラリ関数の役割はプログラムがカーネルを呼び出す機能を保証することです.
多くのプログラムを修正せずにLinuxに直接移植することができますが、このプログラムを再コンパイルする必要があります.
また、Hurdなどの非Linuxカーネル上で実行することもできます.
GCCのオプションmarchとmtuneの役割は何ですか?
marchとmtuneは、GCCコンパイラがプログラムを最適化する方法を示すために使用されます.
marchは、コンパイルされたプログラムがこのアーキテクチャに添付されるだけで実行できるように、どのようなアーキテクチャに従ってコンパイルすべきかを設定するために使用されます.
mtuneは、どのようなCPUで最適化コンパイルを行うべきかを設定するためのもので、mtuneを設定しないと自動的にmarchを使用する設定になります.
nativeに基づいてmarchとmtuneに現在の環境を自動的に検出させて最適化コンパイルを行うこともできます.
   ,GCC -march=1686 -mtune=pentium4

                1686         ,      4   CPU     。

転載先:https://www.cnblogs.com/0x1D/p/4729851.html