ソフトウェアはコンピュータで実行できなければ意味がありません。信頼できるコンパイラ・ツールチェインがなければ、重要なものは何も構築できないからです。なぜなら、信頼できるコンパイラ・ツールチェインがなければ、重要なものは何も構築できないからです。堅牢で成熟した高性能ツールは、あなたのコードの可能性を最大限に引き出すために提供されます。何千人もの人々による何十年もの開発の後、GCCは世界で最も尊敬されるコンパイラの一つとなりました。もしあなたがGCCなしでアプリケーションを構築しているならば、あなたは最良の解決策を見逃しているかもしれません。
よると、GCCは「今日の事実上の標準オープンソースコンパイラ」であり、カーネルから始まる完全なシステムを構築するために使用される基盤です、GCCは、ARM、Intel、AMD、IBM POWER、SPARC、HP PA-RISC、IBM Zを含む60以上のハードウェアプラットフォームと、GNU、Linux、Windows、macOS、FreeBSD、NetBSD、OpenBSD、DragonFly BSD、Solaris、AIX、HP-UX、RTEMSを含む幅広いオペレーティング環境をサポートしています。 互換性の高いC/C++コンパイラを提供します。GCCは互換性の高いC/C++コンパイラを提供し、GNU Cライブラリ、newlib、musl、およびさまざまなBSDオペレーティング・システムに含まれるCライブラリなどの一般的なCライブラリや、Fortran、Ada、およびGO言語のフロントエンドをサポートします。gccは、glibc、Binutils、GNUデバッガを含むGNUプロジェクトによって生成された、緊密に統合されたGNUツールチェインのコアコンポーネントです。
"ずっと、わたしの好きなGNUツールはGCCでした。開発ツールが非常に高価であった当時、GCCは二番目のGNUツールであり、コミュニティが他のすべてのツールを書き、構築することを可能にするものでした。このツールはたった一人で業界を変え、自由ソフトウェア運動の誕生につながりました。" というのも、優れた自由なコンパイラがコミュニティ・ソフトウェアの前提条件だからです。-- Dave Neary、Red Hatオープンソース&スタンダードチーム。
Linuxの最適化
Linuxカーネル・ソースコードのデフォルト・コンパイラであるGCCは、信頼性が高く安定したパフォーマンスと、カーネルを正しくビルドするために必要な追加拡張機能を提供します。GCCは、ArchLinux、CentOS、Debian、Fedora、openSUSE、Ubuntuなどの一般的なLinuxディストリビューションの標準コンポーネントであり、これらのディストリビューションでは通常、サポート・システムのコンポーネントをコンパイルするためにGCCが使用されます。これらのディストリビューションでは、GCCは通常、サポートシステムのコンポーネントをコンパイルするのに使われます。これには、Linuxで使用されるデフォルトのライブラリが含まれ、信頼性と高いパフォーマンスを提供し、アプリケーションとシステムプログラムがLinuxカーネルの機能にアクセスできるようにするために、GCCに依存しています。Python、Perl、Ruby、nginx、Apache HTTP Server、OpenStack、Docker、OpenShiftなど、ディストリビューションに含まれるアプリケーションパッケージの多くもGCCを使用してビルドされています。openSUSEディストリビューションでは、6135のソースパッケージ、5705の共有ライブラリ、および38,927の実行可能ファイルを含む、ネイティブコードのほぼ100%がGCCでビルドされています。これは、1週間あたり24540のソース・パッケージがコンパイルされていることに相当します。
Linuxディストリビューションに含まれるGCCの基本バージョンは、システムを定義するカーネルとライブラリを作成するために使用されます。開発者は、高度な機能、性能の最適化、使い勝手の向上のために、最新の安定版GCCをダウンロードするオプションがあります。Linuxディストリビューションは、最新版のGCCや他のGNUツールをデプロイするためのインストール手順やビルド済みのツールチェーンを提供し、開発者の生産性を高め、デプロイ時間を短縮するのに役立ちます。
インターネットの最適化
GCCは、組み込みシステムに広く採用されているコアコンパイラの1つであり、増加するIoTデバイス向けのソフトウェア開発をサポートします。GCCは、コンパイラの組み込み関数、#構文、インラインアセンブリ、アプリケーション中心のコマンドラインオプションを使用したきめ細かい制御など、組み込みシステムソフトウェア開発に最適な多数の拡張機能を提供します。GCCは、ARM、AMCC、AVR、Blackfin、MIPS、RISC-V、Renesas Electronics V850、NXP、Freescale Powerプロセッサなど、幅広い組み込みアーキテクチャをサポートしています。ARM、AMCC、AVR、Blackfin、MIPS、RISC-V、Renesas Electronics V850、NXP、およびFreescale Powerプロセッサなどの組み込みアーキテクチャを使用して、効率的で高品質なコードを生成できます。GCCが提供するクロスコンパイル機能は、このコミュニティにとって非常に重要であり、ビルド済みのクロスコンパイル・ツールチェインは主要な要件です。たとえば、GNU ARM Embeddedツールチェーンは、ARM Embedded GCCコンパイラ、ライブラリ、およびベアメタル・ソフトウェア開発に必要なその他のツールを含む、統合および検証されたパッケージです。これらのツールチェーンは、一般的なARM Cortex-RおよびCortex-Mプロセッサを、Windows、Linux、およびmacOSホストOS上でクロスコンパイルするために使用できます。
GCCは、データベースやウェブサービスエンジン、バックアップやセキュリティソフトウェアなど、コンピューティングリソースを直接管理する必要があるソフトウェアに信頼性の高い開発プラットフォームを提供することで、クラウドコンピューティングを強化します。GCCは、C++ 11およびC++ 14と完全に互換性があり、C++ 17およびC++ 2aを実験的にサポートしているため、高性能なオブジェクトコードの作成が可能で、信頼性の高いデバッグ情報を提供します。GCCを使用するアプリケーションの例としては、Linux用のGCCを必要とするMySQLデータベース管理システム、GCCを推奨するApache HTTPサーバー、GCCを必要とするエンタープライズクラスのネットワークバックアップツールのBaculaなどがあります。
すべてを最適化
使用中の科学コードの研究開発のために、GCCは洗練されたC、C++およびFortranフロントエンドを提供し、命令ベースの並列プログラミングのためのOpenMPおよびOpenACC APIをサポートします。GCCは、コンピューティング環境を超えた移植性を提供するため、多種多様な新しい、あるいはレガシーなクライアントおよびサーバ・プラットフォーム上でのコードのテストが容易になります。 GCCは、C、C++、およびFortranコンパイラ向けにOpenMP 4.0をフルサポートし、CおよびC++コンパイラ向けにOpenMP 4.5をフルサポートします。OpenACCについては、GCCは2.5仕様と性能最適化のほとんどをサポートしており、 OpenACC サポートを提供する唯一の非商用、非学術用コンパイラです。
g++は、6つのケースのうち3つで2番目に速いコードを生成し、コンパイル時間の点でも最速のコンパイラの1つでした"。
誰がGCCを使っているのですか?
JetBrainsの「2018 State of the Developer Ecosystem Survey」では、調査対象となった6,000人の開発者のうち、66%のC++プログラマーと73%のCプログラマーがGCCを定期的に使用していました。 GCCが開発者コミュニティでこれほど人気を博している理由である、GCCの利点を簡単に紹介します。
- さまざまな新旧のコンピューティング・プラットフォームやオペレーティング環境向けにコードを書く必要がある開発者にとって、GCCは最も幅広いハードウェアとオペレーティング環境のサポートを提供します。ハードウェア・ベンダーが提供するコンパイラは、主に自社製品のサポートに焦点を当てますが、他のオープン・ソース・コンパイラは、サポートするハードウェアとオペレーティング・システムが非常に限られています。
- 組込みシステム開発者にとって特に魅力的なGCCベースのビルド済みツールチェーンがいろいろあります。これには、GNU ARM Embedded Toolchainや、Bootlinウェブサイトで利用可能な138のビルド済みクロスコンパイラ・ツールチェーンが含まれます。 他のオープンソースコンパイラが既存のクロスコンパイラツールチェーンでGCCを置き換えることはできますが、これらのツールセットは開発者による完全な再構築を必要とします。
- GCCは、実績のあるコンパイラ・プラットフォームを通じて、アプリケーション開発者に信頼性と一貫性のあるパフォーマンスを提供します。記事「Benchmarking GCC 8/9 with LLVM Clang 6/7 Compilers on the AMD EPYC Platform」では、3つの最適化レベルでコンパイラを実行した49のベンチマークの結果が示されています。O3 -march=nativeレベルを使用したGCC 8.2 RC1は34%の確率で1位となり、同じ最適化レベルではLLVM Clang 6.0が20%の確率で2位となりました。
- GCCは、コンパイルデバッグのための改善された診断と、ランタイムデバッグのための正確で有用な情報を提供し、ブレークポイントで個々のスレッドを停止する「ノンストップ」デバッグを提供する成熟したフル機能のツールであるGDBと緊密に統合されています。
- GCCは、現在のリリースと2つ前のリリースをサポートする、活発で献身的なコミュニティを持つ、よくサポートされたプラットフォームです。これは、毎年のリリース・スケジュールにより、1つのリリースで2年間のサポートを提供します。
GCC:引き続き最適化
新しいハードウェアプラットフォームは、機械学習、AI、およびIoT市場セグメントにとって関心の高いフリーでオープンなISAであるRISC-Vなど、ソフトウェア開発のためにGCCツールチェーンに依存し続けています。Intelアーキテクチャ向けのClear Linuxプロジェクトは、クラウド、クライアント、およびIoTのユースケース向けに構築された新しいディストリビューションであり、Linuxベースのシステムのパフォーマンスとセキュリティを向上させるためにGCCコンパイラ技術をどのように使用し、改善できるかを示す好例となっています。GCCは、IoTアプリケーション向けのLinuxベースのオペレーティングシステムであるMicrosoft Azure Sphereのアプリケーション開発にも使用されています。GCCは、当初ARMベースのMediaTek MT3620プロセッサをサポートするIoTアプリケーション向けのLinuxベースのオペレーティングシステムであるMicrosoft Azure Sphereのアプリケーション開発にも使用されています。次世代のプログラマの育成という観点では、GCCは、DebianベースのGNU/Linuxを実行する低価格の組み込みボードであるRaspberry Pi用のWindowsツールチェーンのコアコンポーネントでもあります。
GCCはGNU一般公衆ライセンスバージョン3かそれ以降で配布されますが、ランタイムライブラリは例外です。GPLv3はGCCがプロプライエタリなソフトウェアにならないように保護することを意図しており、GCCのコードへの変更を自由かつオープンに行うことを要求しています。エンドユーザ」にとっては、このコンパイラは他のものとまったく同じです。GCCを使うことは、あなたがあなたのコードにどのようなライセンスを選んでも違いはありません。
- 最近のビルド統計に基づいてSUSEが提供する情報です。openSUSEには、実行イメージを生成しないソースパッケージもあり、これらは統計情報に含まれていません。 
- -----ts/
- /-18/
- . 
を経由して





