C言語の開発環境
C言語は、代表的なコンパイラ言語です。開発環境としては、ソフトウェア開発のためにエディタおよびコンパイラ、リンカ、デバッガなどを用意します。統合開発環境(IDE)を用いて効率的に開発することも可能です。ターゲット環境に近い実行環境を準備し、デバッグを行うこともあります。詳細は、以降で解説していきます。
そもそもC言語とは
C言語とは、汎用プログラミング言語の1つを表したもので、古くから広く活用されている言語です。高水準言語でありながら、アセンブリ言語などの低水準言語に近い処理も可能です。組み込み機器の制御から業務システムのソフトウェア開発まで多岐に利用されています。
C言語は1970年代に登場してから広く活用が進み、現在でもコンパイラ言語としてJavaやC++などに並んで人気があります。
C言語開発環境の準備
C言語はコンパイラ言語ですので、ソースプログラムの編集を行うエディタ、コンパイルを行うコンパイラ、実行プログラムを生成するためのリンカ、デバッグするための実行環境などが必要です。開発環境を一括で揃えることができる統合開発環境を準備することもできます。詳細は以降で解説していきます。
エディタ
エディタを用いて、C言語のプログラムソースコードを作成・編集していきます。エディタは、テキストエディタまたはコードエディタを用います。テキストエディタは文章やソースコードの保存形式であるテキストファイルを作成・編集するものです。コードエディタはテキストエディタと同等ながら、プログラムコード固有の操作を編集機能に追加したソフトウェアです。
統合開発環境
統合開発環境(IDE、Integrated Development Environment)は、テキストエディタやコンパイラ・リンカ・デバッガなどがセットで提供されるものです。ソフトウェア開発全般がカバーされており、個々にソフトウェアを用いるよりも開発環境構築の手間を省くことができます。
コーディングからコンパイル・ビルド・デバッグまでの全般をカバーしますので、エディタを単独で使用するよりも一体的に動作させることが可能です。
コンパイラとリンカ
ソフトウェア開発では、ソースコードのコーディング(作成)だけではなく、動作確認のためにビルドとデバッグが必要です。インタープリタの場合はそのまま実行できますが、コンパイラ言語の場合は、コンパイル・リンクを行い実行ファイルを生成します。実行結果が正常かどうかデバッグし、テスト・評価を進めていきます。
C言語はコンパイラ言語ですので、コンパイルを行う環境と、バグが起きた際に正しく動かすことをサポートするデバッガが必要となります。環境構築時には、これらの必要なソフトウェアを導入し、実行可能にしておきます。
実行環境
C言語の開発工程では、実行プログラムをデバッグするために実行プログラムを起動し、問題の有無を確認します。
組み込み機器の制御にも用いられるため、別途実機を用意してコンパイルしたプログラムの実行やデバッグをする場合があります。
おすすめのエディタ3選
エディタですが、プログラミング用途では、言語仕様に基づくハイライト表示機能などを実装するエディタを選ぶと効率的に作業を行うことができます。
C言語で用いる場合も、構文解釈や補助機能を利用することで、効率的に編集作業を行うことができます。具体的なエディタは以降で解説していきます。
Visual Studio Code
Visual Studio Codeは、マイクロソフト社が開発提供しているソースコードエディタです。VSCodeとも呼ばれ、無料のため多くのユーザに利用されています。コードエディタというプログラミング言語用エディタとなります。各プログラム言語の構文チェックや検索・編集を容易に行うことができます。
WindowsやmacOS・Linuxで動作し、C言語やC++をはじめPython・PHP等多数のプログラム言語に対応します。クラウド連携等も可能で自動デプロイもできることから、エディタというよりもIDEに近いソフトウェアです。キー操作のカスタマイズ性も高く人気があります。
【参考】:Microsoft Visual Studio Code
Emacs
Emacsは、1970年代に登場したテキストエディタで、実績が豊富で現在でも人気があります。Emacsはいくつかの派生版が登場しましたが、現在ではEmacsはフリーソフトウェアとして登場したGNU Emacsを指すことが多いです。
WindowsやmacOS・Linuxで動作するフリーソフトウェアで、組み込みコマンドとマクロ機能を持ち、C言語やC++、Java・Perl・Python・Rubyなどに対応します。特徴としては、編集するコンテンツ形式に応じてシンタックスを識別して、プログラムの編集を効率的に行うことができます。豊富なカスタマイズ機能があり、統合開発環境としても利用可能です。
【参考】:GNU Emacs
Sublime Text
Sublime Textは、WindowsやmacOS・Linuxに対応するクロスプラットフォームのテキストエディタです。プロプライエタリのソフトウェアですが、C言語やC++・Pythonなど多くのプログラミング言語やマークアップ言語に対応します。
Sublime Textは、コードサイズが小さいので動作が軽かったり、必要な機能をプラグイン追加で拡張できたりすることで愛好者が多いエディタです。
【参考】:Sublime Text
おすすめの統合開発環境3選
統合開発環境では、C言語コンパイラやデバッガなどがセットで提供され、ソフトウェア開発に必要なソフトウェアが一括で導入できます。利用環境やターゲットとなるアプリケーションに応じて選択することが可能です。詳細は、以降で解説していきます。
Visual Studio
マイクロソフト社の統合開発環境で、Windowsに加えてmacOSでも動作します。Visual C++やVisual C#が組み込まれており、C言語やC++、などに対応します。無料版となるCommunity版と有償版が設定されています。ターゲット向けに実行コードを作成するために、ビルドツールが同梱されます。
【参考】:Visual Studio
C++Builder
エンバカデロ・テクノロジーズが提供する、CおよびC++の統合開発環境です。Delphiから受け継がれているRADツールとして、テキストボックスやボタンといった部品を貼り付けて行き、ユーザインターフェース設計を行います。フリーとなるコミュニティ版と有償製品版があります。
【参考】:Embarcadero C++Builder Community Edition 【参考】:Embarcadero C++Builder
Eclipse
Eclipseは、主にJava向け統合開発環境ですが、プラグインでC言語やC++、C#・COBOL等に対応可能です。WindowsやmacOS・Linuxのクロスプラットフォームに対応します。Eclipse Public License (EPL)の下、無償使用することができます。
【参考】:ECLIPSE IDE
その他
3選からは漏れますが、その他のプラットフォーム向け統合開発環境を、いくつか紹介します。
・Xcode macOSやiOSのアプリケーション開発向けには、アップル社の開発したXcodeがあります。macOSで動作します。C言語やC++、Java・Swiftなどの開発が可能です。macOSやiOS向けにシームレスに開発を行います。プロプライエタリですが、無料で利用できます。
【参考】:Xcode
・Android Studio Android向けには、Googleが提供するAndroid Studioがあります。ホスト環境としては、Windows・macOS・Linuxなどのクロスプラットフォームに対応します。C言語やC++、Java・Kotlinを用いて開発できます。Apache License 2.0の下、無料で利用できます。
【参考】:Android Studio
おすすめのCコンパイラ3選
コンパイラですが、C言語専用コンパイラを使用するほか、C++コンパイラを使用してC言語のソースコードコンパイルができます。今日では、統合開発環境に必要な機能が搭載されていますが、必要に合わせて単体でCコンパイラを導入することもできます。詳細は、以降で解説していきます。
GCC
コンパイラ製品を単体で導入する場合は、無料で始められるものとしてGCC(GNU Compiler Collection)があります。LinuxなどのUNIX系OSやWindowsで動作します。
【参考】:GCC, the GNU Compiler Collection
Windowsでは、MinGW(MinGW - Minimalist GNU for Windows)を導入することで、GNU Compiler Collection(GCC)や、GNU Binutils for Windowsなどが一括インストールできます。GNU Binutils for Windowsには、アセンブラやリンカなどが含まれます。
【参考】:MinGW - Minimalist GNU for Windows 【参考】:GNU Binutils
C++Compiler
エンバカデロ・テクノロジーズが提供するフリー版のコンパイラです。統合開発環境であるC++ Builderにも含まれているコンパイラです。コンパイラ単体の場合も無料でダウンロードし、利用できますが、Win32向け開発に限定されます。C++コンパイラとリンカ、C++プリプロセッサが同梱されており、makeやgrep・touchなどの開発で利用するツールも含まれます。
C++ Compilerのようなコンパイラ単品を導入するのではなく、統合開発環境のC++ Builderを使用する場合は、Win32に加えてWin64や、macOS・iOS・Android向けの開発も可能です。コンパイラ単体を使用する場合よりも、統合開発環境を使用する方がメリットがあります。
LLVM
LLVMは、コンパイル・リンク・実行のそれぞれでプログラムの最適化を図るためのコンパイラ基盤です。最適化するためのメカニズムが多数搭載されており、JITコンパイラのように使用することもできます。フロント部分に、ClangというCやC++などをサポートするマルチプログラミング言語のコンパイラを配置し、GCCの置換や統合開発環境と連携・統合を目指しています。
【参考】:The LLVM Compiler Infrastructure
用途に応じて開発環境を構築しましょう
C言語は、高水準言語として汎用プログラミングとして用いることができるほか、組み込みシステムの制御に用いる低水準言語としても利用することができます。そのため、開発環境の用い方は多岐にわたります。
近年、効率的なソフトウェア開発が可能な、環境統合開発環境の活用が増えています。それぞれの製品を試してみて、実際の操作感を確認することをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから