GCCとは


 
 
GCC の認識については、多くの読者は「GCC は C 言語のコンパイラ」というレベルにとどまり、非常に一方的です。このセクションから、GCC を体系的に学習できるように導きます このセクションでは、まず、GCC を体系的に理解できるように導きます。

 

GCC に関して言えば、GNU プロジェクトに言及する必要があります。 GNU の正式名称は GNU の Not UNIX であり、1983 年に Richard Stallman によって開始された「Genu プロジェクト」としても知られています。 GNU プロジェクトの最終的な目標は、完全にフリー (つまり、自由に使用、自由に変更、自由に公開できる) のオープン ソース オペレーティング システムを作成することであり、当初はそれを GNU オペレーティング システムと名付けました (そのロゴは に示されています)。図1)。

図 1 GNU オペレーティング システムのロゴ

GNU プログラムの実装は紆余曲折ありました. 最も重要な点は、プログラムが Thr Hurd という名前のシステム カーネルを GNU オペレーティング システム用に調整したにもかかわらず、そのパフォーマンスが 2000 年に生まれた Linux カーネルほど良くなかったということです.結局、GNU プログラムはあきらめ、ハードは GNU オペレーティング システムのカーネルとして Linux を選びました。 Linux カーネルをベースに、GNU プロジェクトは多くのシステム コンポーネントを開発してきましたが、GCC はその 1 つです (さらに、Emacs などの非常に便利なソフトウェアがあります)。

この観点から、GNU プロジェクトは「フリーでオープンソースのオペレーティング システムを作成する」という当初の意図をようやく実現しましたが、オペレーティング システムは GNU プロジェクトによって完全に作成されたわけではないため、GNU/Linux オペレーティング システムと呼ばれます。 (人々は、Linux オペレーティング システムに対してそれを呼び出すことに慣れています)。オープンソースと自由は、資料がないことを意味するものではないことに注意してください. 

初期の GCC のフル スペルは GNU C Compiler、つまり GUN プロジェクトから生まれた C 言語コンパイラでしたが、明らかに、GCC の最初の位置付けは実際には C 言語をコンパイルするためだけに使用されていました。しかし、何年にもわたる継続的な反復の後、GCC の機能は大幅に拡張され、C 言語プログラムのコンパイルに使用できるだけでなく、C++、Go、Objective-C およびその他のコンパイル言語で記述されたプログラムを処理することもできます。同時に、以前の GNU C コンパイラは GCC の意味を完全に解釈できなかったため、その完全な英語名がGNU コンパイラ スイートである GNU Compiler Collection として再定義されました。

いわゆるコンパイラは、単に「翻訳者」として理解することができます。コンピュータが理解できるのはバイナリ命令 (0 と 1 で構成される命令のみ) だけであることを知っておく必要があります.私たちが毎日書いている C 言語コード、C++ コード、Go コードなどは、コンピュータにはまったく認識されません.各ステートメントを翻訳することによってのみコンピュータはバイナリ命令しか実行できません。

したがって、GCC コンパイラは改善されなくなりました。今日 (2020 年 5 月) の時点で、GCC は最初のバージョン 1.0 からバージョン 10.1 まで開発されており、その間に何百回ものバージョンの反復が行われています。最も人気のあるコンパイラの 1 つとして、GCC は何千ものハードウェア/ソフトウェア プラットフォームに移植されており、ほとんどすべての Linux ディストリビューションにもデフォルトで GCC コンパイラがインストールされています。

表 1: GCC がサポートするハードウェア プラットフォーム (一部)
ハードウェア オペレーティング·システム
アルファ レッドハット Linux 7.1
HPPA HPUX11.0
インテル x86 Debian Linux 2.2、Red Hat Linux 6.2、および FreeBSD 4.5
MIPS IRIX6.5
PowerPC AIX4.3.3
スパーク ソラリス 2.7

元の GCC コンパイラには使い慣れたインターフェイス ウィンドウがなく、これを使用するには、対応する gcc コマンドを作成する必要があります。いわゆるオリジナルフレーバーとは、純粋な GCC コンパイラーと、GCC コンパイラーに統合された開発ソフトウェア (IDE) を指します. 前者と比較して、後者は、GCC コンパイラーの機能を統合しながら、使いやすいインターフェースウィンドウをユーザーに提供します. gcc コマンドを覚えなくても開発作業に取り組めるため、ユーザーの学習コストを大幅に削減できます。

オペレーティング システムは大まかに 2 つの陣営、つまり Windows 陣営と Unix ライクな陣営 (Unix、Linux、Mac OS、Android などを含む) に分けられます。通常、Windows システムのユーザーは既存の IDE を使用してプログラムをコンパイルすることに慣れていますが、Unix ライクなシステムでは、ユーザーは対応する gcc コマンドを直接記述してプログラムをコンパイルすることを好みます。

ここでは、GCC コンパイラとは何かを理解した上で、CentOS オペレーティング システム (Linux ディストリビューションの 1 つ) で gcc コマンドを使用して C 言語プログラムを実行する例を示します。これにより、読者は機能と使用法をより直感的に体験できます。 GCC コンパイラの .

以下は、vim エディターで作成した完全な C 言語プログラムです。その機能は、”Hello, World!” を出力することです。

 

図 1 Linux システムで C 言語プログラムを作成する

このプログラムでは、次の gcc コマンドを使用できます。

gcc demo.c -o demo.exe

gcc コマンドの各部分の意味については、後続の章で詳しく説明するので、ここで詳しく説明する必要はありません。

次の図は、gcc コマンドを使用して C 言語コードを実行可能ファイルにコンパイルする方法を示しています。

図 2 C 言語プログラムをコンパイルする gcc コマンド

図 2 に示すように、対応する gcc コマンドを記述して実行することにより、記述したプログラムを簡単にバイナリ実行可能ファイルにコンパイルできます。

では、gcc コマンドの書き方は?心配しないでください。以下の章で詳しく説明します。

 

「 GCCとは」についてわかりやすく解説!絶対に観るべきベスト2動画

 
gccを用いたCのソースコードコンパイル
GCCインストール~Path通すまで。