C言語の学習を始めて、最初に直面する大きな壁が「コンパイル」の作業ではないでしょうか。
メモ帳などのエディタで書いたプログラムのソースコード(.cファイル)は、そのままではコンピュータが理解して動かすことができません。
ソースコードをコンピュータが実行可能な形式(バイナリ)に変換する作業が必要になります。
この記事では、C言語におけるGCCを使ったコンパイルのやり方から、実行コマンド、実務で頻出するコンパイルオプションの一覧、そして「コンパイルができない」時の原因と対策まで、サンプルコードを交えて徹底的に解説します。
Windows環境での導入方法についても触れていますので、ぜひ参考にしてください。
![]() 執筆者:マヒロ |
|
- OS:Windows 11 / macOS Sequoia
- IDE:Visual Studio / VS Code / IntelliJ IDEA
- その他:Chrome DevTools / 各言語最新安定版
※本メディアでは、上記環境にてコードの動作と情報の正確性を検証済みです。
GCCとは?C言語コンパイルの基本とやり方
GCCは、オープンソースで開発されている非常に強力なコンパイラです。
Linux環境の標準的なコンパイラとして有名ですが、現在はMacやWindowsなど、あらゆるプラットフォームで利用されています。
C言語のプログラムを動かすための一連の流れは、基本的には「コードを書く」「コンパイルする」「実行する」という3つのステップで完結します。
まずは、この最もシンプルな手順を確認しましょう。
GCCのインストール方法(Windows/Mac/Linux)
コンパイルを行う前に、お使いの環境にGCCが導入されているか確認する必要があります。
ターミナル(WindowsならコマンドプロンプトやPowerShell)を開き、gcc --version と入力して実行してください。バージョン情報が表示されれば導入済みです。
GCCのインストール手順は環境によって異なります。
Windowsの場合は、MinGW-w64をインストールして環境変数(Path)を通す方法や、WSL2を使ってWindowsの中にLinux環境を構築する方法が現在の主流です。
Macの場合は、ターミナルで xcode-select --install と入力することで、開発ツール一式と共にGCC(実際にはClangのラッパー)が簡単に導入できます。
Linuxであれば、パッケージマネージャーを使って sudo apt install build-essential などと入力するだけで準備が整います。
最もシンプルなコンパイルと実行コマンド
それでは、実際にプログラムを作成して動かしてみましょう。
ここでは「Hello World」を表示するだけの簡単なプログラム hello.c を用意します。
#include <stdio.h>
int main(void) {
printf("Hello, GCC World!\n");
return 0;
}
このファイルをコンパイルして実行するためのコマンドは以下の通りです。
# 1. コンパイルを実行
gcc hello.c
# 2. 生成されたファイルを実行
# Windowsの場合
a.exe
# Mac / Linuxの場合
./a.out
実行結果
Hello, GCC World!
gcc hello.c というコマンドを入力すると、GCCはソースファイルを読み込み、文法エラーがないかチェックした後、実行用ファイルを作成します。
ここでファイル名を指定しない場合、デフォルトで a.exe(Windows)または a.out(Unix系)という名前のファイルが出来上がります。
実行時には、作成されたファイルの名前を入力するだけでプログラムが走り出します。
MacやLinuxでは、現在のディレクトリにあることを示すために ./ を頭に付けるのがお決まりのルールとなっています。
実務で必須!GCCコンパイルオプション一覧と使い方
コンパイルをする際、単に gcc ファイル名 と打つだけでは不十分な場面が多々あります。
実際のシステム開発では、出力ファイルに名前を付けたり、最適化を行ったりするために「オプション」と呼ばれる追加の命令を組み合わせて使用します。
ここでは、オプションの中から、特に重要なものを厳選して紹介します。
出力ファイル名を指定する -o オプション
デフォルトの a.out のままでは、複数のプログラムを作成した際に見分けがつかなくなります。
-o オプションを使うことで、実行ファイルに好きな名前を付けることができます。
# 実行ファイル名を "hello" としてコンパイル
gcc hello.c -o hello
# 実行
./hello
gcc コマンドの後ろに -o 出力名 を加えることで、出力されるバイナリファイルの名前が指定したものに変わります。
これにより、「これはログイン機能」「これは計算ツール」といった具合に、実行ファイルを分かりやすく管理できるようになります。
警告を表示する -Wall オプション
C言語は非常に自由度の高い言語ですが、その分ミスを犯しやすい側面もあります。
-Wall オプションは、バグの原因になりそうな怪しいコードに対して「警告(Warning)」を表示してくれます。
# すべての一般的な警告を有効にしてコンパイル
gcc -Wall main.c -o main
このオプションを使用すると、例えば「定義したのに使っていない変数がある」や「型の不一致がある」といった、エラーにはならないものの修正すべき箇所を指摘してくれます。
プロフェッショナルな現場では、警告を一つも出さない状態でコンパイルを通すことが鉄則とされており、品質の高いコードを書くために必須のオプションと言えます。
数学ライブラリをリンクする -lm オプション
math.h を使って sin や sqrt などの数学関数を利用する場合、単純なコンパイルでは「未定義の参照」というエラーが出ることがあります。
これは、数学ライブラリが標準のライブラリとは別に管理されているためです。
# 数学ライブラリを明示的に結合(リンク)する
gcc calc.c -o calc -lm
末尾に付けた -l はライブラリをリンクする指示であり、m は数学(Math)ライブラリを指します。
このように、外部の機能を借りてくる際にはライブラリのリンク指定が必要になる場合があることを覚えておくと、トラブルを未然に防ぐことができます。
コンパイルができない・実行できない時のチェックリスト
「コードは正しいはずなのにコンパイルできない」という状況は、初心者から上級者まで誰にでも起こり得ます。
エラーが出た際に慌てず対処できるように、よくある原因と解決策を整理しました。
「gcc: command not found」エラーが出る場合
このメッセージが出る場合、パソコンがGCCを見つけられていません。
原因は主に2つあります。
一つはGCCがインストールされていないこと、もう一つはインストールした場所をコンピュータに教える「環境変数(Path)の設定」ができていないことです。
特にWindowsの環境で、MinGWなどを手動で入れた場合に起きやすい問題です。
コントロールパネルのシステム設定から、GCCの実行ファイルが入っているフォルダ(例:C:\MinGW\bin)をPathに追加し、ターミナルを再起動することで解決します。
文法エラー(Syntax Error)の読み解き方
コンパイル時に画面に大量の英語が表示された場合、それはGCCからの指摘事項です。
一見難しそうに見えますが、エラーメッセージには重要なヒントが隠されています。
main.c:5:10: error: expected ';' before 'return'
最初の main.c:5:10 は「main.cというファイルの5行目、10文字目付近に問題がある」ことを示しています。
そして expected ';' は「分末にセミコロン ; が抜けている」という具体的なミスを指摘しています。
C言語のコンパイルエラーは、一番上のエラーを解決すると、それに連鎖して出ていた他のエラーも消えることが多いです。
まずは最初の一つに集中して修正を行い、こまめに再コンパイルを繰り返すのがコツです。
C言語のスキルを活かして年収を上げる方法
以上、C言語でのGCCコンパイルのやり方について解説してきました。
C言語を扱えるエンジニアは比較的希少価値が高く、転職によって数十万円の年収アップはザラで、100万円以上年収が上がることも珍しくありません。
なお、転職によって年収を上げたい場合は、エンジニア専門の転職エージェントサービスを利用するのが最適です。
転職エージェントも副業エージェントも、登録・利用は完全無料なので、どんな求人や副業案件があるのか気になる方は、気軽に利用してみるとよいでしょう。
| 年収アップにこだわりたい方 (平均アップ額138万円の実績) | テックゴー |
| 未経験・経験者問わず幅広く探したい方 | ユニゾンキャリア |
| 業界に精通した担当者に相談したい方 | キッカケエージェント |
| ゲーム業界への転職を志望する方 | ファミキャリ |
| エンジニア未経験からキャリアを築く方 | イーチキャリア |



