プログラミングを学んでいると、「実際にどうやってコンパイルすればいいの?」と疑問に感じる場面があるでしょう。
コンパイルのやり方はプログラミング言語や使用する開発環境によって異なりますが、基本的な手順を押さえておくことでスムーズに実行できるようになります。
この記事では、コンパイルの基本的な手順とやり方を、コマンドやツール・開発環境の種類ごとにわかりやすく解説していきます。
C言語・Java・C++などを扱う方や、コマンドラインでのコンパイルを初めて試みる方にぜひ参考にしていただきたい内容です。
コンパイルのやり方は「言語と環境に合ったコンパイラを用意して実行する」のが基本
それではまず、コンパイルの基本的な考え方について解説していきます。
コンパイルを行うためには、使用するプログラミング言語に対応したコンパイラを準備し、コマンドまたはIDEのビルド機能から実行するという流れが基本になります。
コンパイラはプログラミング言語ごとに異なり、C言語ならgccやClang、JavaならJDKに含まれるjavacが代表的なツールです。
開発環境としては、コマンドラインで直接コンパイルする方法と、Visual StudioやEclipseなどのIDEを使う方法の2つのアプローチが主流です。
どちらの方法でも内部的にはコンパイラが呼び出されており、最終的に実行ファイルが生成されるという点は変わりません。
コンパイルの基本的な流れ:
①使用言語に対応したコンパイラを準備する
②ソースコードを記述して保存する
③コマンドまたはIDEからコンパイルを実行する
④生成された実行ファイルを実行する
コンパイラの準備と確認方法
コンパイルを始めるには、まず使用する言語のコンパイラがインストールされているかを確認します。
Windowsの場合はgccをMinGWやWSL(Windows Subsystem for Linux)経由でインストールすることが多く、macOSではXcode Command Line Toolsに含まれるClangが利用できます。
LinuxではパッケージマネージャーからgccやOpenJDKを簡単にインストール可能です。
コンパイラのバージョン確認コマンド例:
gcc –version (C言語・C++用)
java -version (Java用)
python –version (Pythonはインタプリタですが確認方法の参考として)
バージョンが表示されれば正常にインストールされているサインです。
コマンドが見つからないエラーが表示された場合は、インストールと環境変数のパス設定を見直す必要があります。
ソースコードの作成と保存
コンパイルを行う前に、まずソースコードをテキストエディタやIDEで作成して保存します。
C言語であれば.c、C++であれば.cpp、Javaであれば.javaという言語に対応した拡張子でファイルを保存することが重要です。
拡張子が正しくないと、コンパイラがファイルの種類を認識できずエラーになることがあります。
ファイル名にはスペースや日本語を含めないのが、トラブルを避けるうえでの基本的なルールです。
コンパイルと実行の基本的な流れ
ソースコードを作成したら、コンパイラコマンドを実行して実行ファイルを生成し、その後実行ファイルを起動するという2段階の手順を踏みます。
コンパイルと実行は別々の操作であることを意識しておくと、エラーが発生した際の原因特定がしやすくなります。
IDEを使用している場合は、ビルドボタンを押すだけでコンパイルから実行ファイルの生成まで自動で行われます。
まずはシンプルなサンプルコードでコンパイルと実行の流れを体験してみることが、習得の近道です。
C言語・C++のコンパイルのやり方を確認しよう
続いては、C言語・C++のコンパイルの具体的なやり方を確認していきます。
gccを使ったコマンドラインでのコンパイル手順を中心に解説します。
| 言語 | コンパイルコマンド例 | 実行コマンド例 |
|---|---|---|
| C言語 | gcc source.c -o output | ./output(Linux/mac) output.exe(Windows) |
| C++ | g++ source.cpp -o output | ./output(Linux/mac) output.exe(Windows) |
| C言語(最適化あり) | gcc -O2 source.c -o output | ./output |
| C言語(デバッグ用) | gcc -g -Wall source.c -o output | ./output |
gccを使ったC言語のコンパイル手順
gccを使ってC言語のソースコードをコンパイルするには、ターミナルまたはコマンドプロンプトでコンパイルコマンドを実行します。
C言語のコンパイル手順例:
①ソースコードを作成して保存(例:hello.c)
②ターミナルで以下を実行:gcc hello.c -o hello
③実行ファイルを起動:./hello(Linux/mac)または hello.exe(Windows)
-oオプションは出力ファイル名を指定するためのもので、指定しない場合はa.outという名前で実行ファイルが生成されます。
コンパイルが成功すれば指定した名前の実行ファイルが生成され、すぐに実行することができます。
エラーメッセージが表示された場合は、該当する行番号を確認して修正しましょう。
g++を使ったC++のコンパイル手順
C++のソースコードをコンパイルする場合は、gccではなくg++コマンドを使用します。
g++はC++の標準ライブラリを自動的にリンクしてくれるため、C++の機能を使うプログラムでは必ずg++を使うことが基本です。
C++のコンパイル手順例:
①ソースコードを作成して保存(例:main.cpp)
②ターミナルで以下を実行:g++ main.cpp -o main
③実行ファイルを起動:./main
C++11以降の機能を使用する場合は、-std=c++11や-std=c++17などの言語標準オプションを追加することが推奨されます。
複数のソースファイルがある場合は、すべてのファイルをコマンドに並べて指定することで一括コンパイルができます。
複数ファイルのコンパイル方法
実際のプロジェクトでは複数のソースファイルを扱うことが多く、それぞれをまとめてコンパイルする必要があります。
複数ファイルのコンパイル例:
gcc main.c sub.c utils.c -o output
→ main.c・sub.c・utils.cをまとめてコンパイルして実行ファイルを生成。
ファイル数が多くなってきたら、MakefileやCMakeを使ってビルドを自動化するのが効率的な方法です。
変更されたファイルだけを再コンパイルする差分ビルドも活用することで、ビルド時間を大幅に短縮できます。
プロジェクトの規模が大きくなるほど、ビルドツールの導入が開発効率の向上に直結します。
Javaのコンパイルのやり方を確認しよう
続いては、Javaのコンパイルのやり方を確認していきます。
Javaはコンパイルから実行までに独自の仕組みがあるため、その流れを理解しておくことが重要です。
javacを使ったJavaのコンパイル手順
JavaのソースコードをコンパイルするにはJDK(Java Development Kit)に含まれるjavacコマンドを使用します。
Javaのコンパイル手順例:
①ソースコードを作成して保存(例:Hello.java)
②ターミナルで以下を実行:javac Hello.java
③バイトコードファイル(Hello.class)が生成される
④JVMで実行:java Hello
Javaのコンパイルでは機械語ではなくバイトコード(.classファイル)が生成され、JVM(Java仮想マシン)上で実行されます。
このためJavaは一度コンパイルすれば、JVMが動作する異なるOS上でも同じコードを実行できるというクロスプラットフォームの特性を持っています。
javaコマンドの後にはクラス名を指定します。拡張子.classは不要です。
JDKのインストールと環境変数の設定
Javaのコンパイルを行うには、JDKのインストールと環境変数の設定が必要です。
OracleのJDKまたはOpenJDKをインストールし、JAVA_HOMEとPATHの環境変数を正しく設定することでjavacコマンドが使えるようになります。
設定後にjavac -versionを実行してバージョンが表示されれば、正常にセットアップが完了している状態です。
WindowsではシステムのプロパティからGUIで環境変数を設定できます。
IDEを使ったJavaのコンパイルと実行
IntelliJ IDEAやEclipseなどのIDEを使用すれば、コマンドラインを使わずにJavaのコンパイルと実行が可能です。
IDEでは実行ボタンを押すだけでコンパイルと実行が自動で行われるため、初心者にも扱いやすい環境です。
エラーが発生した場合は該当箇所がエディタ上に赤くマークされるため、修正箇所を素早く特定できます。
プロジェクト規模が大きくなってきたら、GradleやMavenと組み合わせてビルド管理を行うのが一般的な方法です。
開発環境別のコンパイル方法と注意点
続いては、開発環境別のコンパイル方法と注意点を確認していきます。
使用するOSやツールによってセットアップ手順が異なるため、自分の環境に合った方法を選ぶことが大切です。
WindowsでのコンパイルはMinGWやWSLが便利
WindowsでC言語・C++をコンパイルする場合、MinGW(Minimalist GNU for Windows)またはWSL(Windows Subsystem for Linux)を使う方法が一般的です。
MinGWはWindowsネイティブなgcc環境を提供し、WSLはWindows上でLinux環境を動かすことでLinuxのコマンドラインツールをWindowsで利用できるようにします。
Visual Studioを使用する場合は、MSVCコンパイラが標準で利用可能で、GUIでのビルド管理が充実しています。
初心者にはIDEとMinGWの組み合わせが扱いやすいでしょう。
macOSでのコンパイル環境の整え方
macOSでは、Xcode Command Line Toolsをインストールすることでgcc(実体はClang)が使えるようになります。
Xcode Command Line Toolsのインストールコマンド:
xcode-select –install
→ ターミナルで実行するとインストールが開始される。
Homebrewを使えば追加のツールも簡単にインストールできるため、macOSの開発環境整備にはHomebrewの活用が便利です。
VSCodeとClangの組み合わせも、macOSでの軽量な開発環境として人気があります。
Linuxでのコンパイルはパッケージマネージャーからすぐ始められる
Linuxではパッケージマネージャーを使ってgccやJDKを簡単にインストールできます。
Ubuntuでのgccインストールコマンド:
sudo apt update
sudo apt install gcc
Linuxはそもそも開発ツールが充実しており、コマンドラインでのコンパイル作業との相性が非常に良い環境です。
サーバー上での開発やCI/CD環境の構築でもLinuxが広く採用されているため、Linuxでのコンパイル操作に慣れておくことは長期的に大きなメリットになります。
VSCodeのRemote SSH機能を使えば、Linuxサーバーにリモートで接続しながらGUI感覚で開発することも可能です。
まとめ
この記事では、コンパイルの基本的なやり方を、コマンド・ツール・開発環境・言語別の実行手順を交えて解説しました。
コンパイルのやり方の基本は、使用言語に対応したコンパイラを準備し、コマンドまたはIDEから実行するというシンプルな流れです。
C言語・C++ではgcc・g++コマンド、Javaではjavacコマンドを使い、それぞれの言語の特性に合った手順でコンパイルを行います。
開発環境はWindows・macOS・Linuxそれぞれにセットアップ方法があり、自分の環境に合ったツールを選ぶことが重要です。
コンパイルの手順をしっかり身につけることで、プログラミングの実践力を大きく高めることができるでしょう。
ぜひ実際に手を動かして、コンパイルと実行の流れを体験してみてください。