Linux では、GCC は GNU コンパイラ コレクション 。さまざまなプログラミング言語のコンパイラ システムです。主に C および C++ プログラムをコンパイルするために使用されます。必要な引数としてソース プログラムの名前を受け取ります。デバッグ、警告、オブジェクト ファイル、リンク ライブラリなどの残りの引数はオプションです。
GCC は、GNU ツールチェーンのコア コンポーネントです。 Linux カーネルや GNU ツールなど、さまざまなオープンソース プロジェクトが GCC を使用してコンパイルされています。
GPL (General Public License) に基づいて配布されます。最初のバージョン、 GCC1.0 は 1987 年にリリースされました。これは C プログラミング言語のみを対象としていましたが、同じ年に C プログラミング言語向けに拡張されました。 C++ プログラミング言語 。その後、Objective-C、Objective-C++、Fortran、 ジャワ 、エイダ、ゴーなど。最新バージョンでは、プログラミング言語の実装が大幅に改善されました。
GNU OS の公式パートナーです。そのため、Linux ベースのシステムの標準コンパイラとして採用されています。
bashは文字列を連結します
GCC のコンポーネント
GCC はポータブル ツールであり、多くのオペレーティング システムで実行できます。また、移植することもできます ウィンドウズ などのツールを使用することで、 Cygwin、MinGW、および MinGW-W64 。これは GNU ツールチェーンの重要なコンポーネントであるため、アプリケーションとオペレーティング システムを開発するための次のコンポーネントが含まれています。
GNU コンパイラ コレクション (GCC): これは、C/C++ や Objective-C/C++ などの多くの言語に対応するコンパイラ スイートです。
GNU の作成: これは、アプリケーションのコンパイルとビルドに使用される自動化ツールです。
GNU Binutils: などのバイナリ ユーティリティ ツールが含まれるスイートです。 リンカ そして アセンブラ 。
GNU デバッガー (GDB)。 アプリケーションをデバッグするために使用されます。
GNU オートツール: これは、Autoconf、Autoheader、Automake、Libtool などのいくつかのユーティリティ ツールを含むビルド システムです。
GNU バイソン: lex や yacc と同じパーサージェネレーターです。
GCC コンパイラ プロセス
GCC は、次の 4 つの手順でプログラムをコンパイルし、実行可能にします。
前処理: このステップでは、GNU プリプロセッサ (cpp.exe) がソース コードを含む中間ファイルを作成します。プリプロセッサはヘッダーをインクルードし (#include)、マクロを展開します (#define)。以下のコマンドを考えてみましょう。
cpp hello.c > hello.i
上記のコマンドは中間ファイル「hello.i」を作成します。
編集: このステップでは、前処理されたソース コードが特定のプロセッサ用のアセンブリ コードにコンパイルされます。
gcc -S hello.i
上記のコマンドは、アセンブリ ファイル「hello.s」を作成します。 「-s」オプションは、オブジェクト コードではなくアセンブリ コードを生成することを指定するために使用されます。
組み立て: アセンブリコードはマシンコードに変換されます。オブジェクトファイル「hello.o」が作成されます。
as -o hello.o hello.s
リンカ: リンカー (ld.exe) は、コンパイラ プロセスの最終ステップです。オブジェクト コードとライブラリ コードをリンクし、実行可能ファイルを生成します。
ld -o hello.exe hello.o
上記のコマンドにより、実行可能ファイル「hello.exe」が作成されます。
Linux への GCC のインストール
デフォルトでは、ほとんどの Linux ディストリビューションに付属しています。以下のコマンドを実行して確認できます。
gcc -version
上記のコマンドは、インストールされている GCC ツールのバージョンを表示します。インストールされていない場合は、次の手順に従ってインストールします。
ステップ1: パッケージリストを更新します。
パッケージリストを更新するには、次のコマンドを実行します。
sudo apt update
システム管理パスワードを求められるので、パスワードを入力します。システムパッケージの更新が開始されます。以下の出力スナップを考えてみましょう。
ステップ 2: build-essential パッケージをインストールします。
gcc、g++、make ユーティリティなどのさまざまなパッケージが含まれています。以下のコマンドを実行してインストールします。
sudo apt install build-essential
上記のコマンドは、GCC ユーティリティに必要なパッケージをインストールします。これで、マシンで GCC ユーティリティを使用できるようになりました。以下の出力スナップを考えてみましょう。
ステップ 3: インストールを確認します。
インストールを確認するには、次のように gcc -version コマンドを実行します。
gcc --version
インストールされている GCC ユーティリティのバージョンが表示されます。バージョンに関するより具体的な詳細を表示するには、「-v」オプションを使用します。以下の出力を考えてみましょう。
これで、GCC ユーティリティが正常にインストールされました。使い方を理解しましょう。 GCC を使用していくつかの C プログラムを作成して実行します。
gcc による最初の C プログラムの実行
基本的なものを作成する Cプログラム 'こんにちは世界!'。ファイル「hello.c」を作成し、以下のコードをその中に入れます。
#include int main() { printf('Hello, world! '); return 0; }
次に、次のように hello.c をコンパイルします。
gcc hello.c
hello.c を直接実行すると、エラーがスローされます。これを実行可能にします。Linux システムのデフォルトの実行可能ファイルは a.out です。ファイルを実行するには、次のように chmod コマンドを実行します。
chmod a+x a.out
ここで、次のように c プログラムを実行します。
./a.out
以下の出力を考えてみましょう。
GCC コマンドの例
gcc コマンドの役立つ例をいくつか次に示します。
デフォルトでは、gcc コマンドはオブジェクト ファイルを次のように作成します。 「あ、アウト」 。」デフォルトの出力ファイル名を変更する場合は、 「-お」 オプション。
基本的な gcc コマンドを実行してみましょう。
gcc hello.c
上記のコマンドはオブジェクト ファイル「a.out」を生成します。オブジェクトファイル名を指定するには、次のようにコマンドを実行します。
gcc hello.c -o hello
出力ファイル「hello.」が生成されます。以下の出力を考えてみましょう。
Javaで自動配線されるものは何ですか
出力内のすべての警告を有効にするには、 '-壁' gcc コマンドのオプション。 hello.cのmain関数に変数を作成してみましょう。以下のコードを考えてみましょう。
こんにちはC:
#include int main() { int a; printf('Hello, world! '); return 0; }
-Wall オプションを使用して上記のコードをコンパイルするとします。警告がスローされます。以下のコマンドを実行してファイルをコンパイルします。
gcc -wall hello.c
上記のコマンドを実行すると、警告が表示されます。以下の出力を考えてみましょう。
コンパイル プロセスの段階的な出力のみを生成できます。
プリプロセッサ出力を生成する
「-E」オプションを使用すると、前処理出力のみを生成できます。以下のコマンドを考えてみましょう。
gcc -E hello.c > hello.i
上記のコマンドから、ファイル 「こんにちは。」 前処理された出力を含むものが生成されます。以下の出力を考えてみましょう。
アセンブリコードを生成する
アセンブリ コードを生成するには、「-S」オプションを指定してコマンドを実行します。以下のコマンドを考えてみましょう。
gcc -S hello.c > hello.s
上記のコマンドは「hello.s」を生成します。アセンブリコードを含むファイル。以下の出力を考えてみましょう。
コンパイルされたコードを生成する
Javaの構造
「-C」オプションを使用すると、コンパイルされたコードのみを生成できます。以下のコマンドを考えてみましょう。
gcc -C hello.c
上記のコマンドは、マシン コードまたはコンパイルされたコードのみを含むファイル「a.out」を生成します。以下の出力を考えてみましょう。
コンパイルプロセスのすべての中間ファイルを生成します
「-save-temp」オプションを使用すると、コンパイル プロセスのすべての中間ファイルを生成できます。以下の出力を考えてみましょう。
gcc -save-temps hello.c
上記のコマンドは、すべての中間ファイルと実行可能ファイルを一度に生成します。以下の出力を考えてみましょう。
gcc コマンドによって実行されるすべてのステップの詳細情報を表示できます。これを行うには、「-v」オプションを指定してコマンドを実行します。
gcc -W -v hello.c
以下の出力スナップを考えてみましょう。
gcc コマンドの最も有用な例をいくつか説明しました。 gcc コマンドは膨大な数のオプションを使用して操作を容易にするため、使用中に行き詰まる可能性があります。ターミナルから自分でヘルプを取得する方法を見てみましょう。
GCCマニュアル
gcc コマンドの使用中に行き詰まった場合は、ターミナルからヘルプを参照できます。コマンドラインからマニュアルにアクセスするには、次のように man コマンドを実行します。
man gcc
上記のコマンドは、サポートされているオプションの説明とリストを簡単な説明とともに含むマニュアルを表示します。以下の出力スナップを考えてみましょう。
出力をスクロールして詳細を読むことができます。 「h」キーを押してヘルプを表示し、q キーを押してマニュアルを終了してターミナルに戻ります。