カテゴリ: C言語 更新日: 2026/02/04

LinuxでC言語開発環境を構築する方法【GCCとMakefileの基本】

LinuxでC言語開発環境を構築する方法【GCCとMakefile】
LinuxでC言語開発環境を構築する方法【GCCとMakefile】

先生と生徒の会話形式で理解しよう

生徒

「先生、LinuxでC言語を勉強したいんですが、どうやって環境を作るんですか?」

先生

「Linuxでは、GCCというC言語のコンパイラを使って開発するのが一般的です。ターミナルを使えば簡単にプログラムを実行できますよ。」

生徒

「GCCって何ですか?難しそうな名前ですね。」

先生

「GCCは『GNU Compiler Collection(ジーシーシー)』の略で、C言語を機械が理解できる形に変換するためのプログラムです。今から一緒にLinuxでの開発環境を整えていきましょう!」

1. LinuxでC言語を動かすには?

1. LinuxでC言語を動かすには?
1. LinuxでC言語を動かすには?

Linuxでは、C言語の開発に必要なツールを簡単に導入できます。C言語はもともとUNIX(ユニックス)というシステムで生まれたため、Linuxとの相性が非常に良いのです。Linuxにはターミナルという黒い画面があり、そこでGCCというコンパイラを使ってプログラムを実行します。

初心者でも心配はいりません。キーボードでコマンドを入力するだけで、簡単にC言語のプログラムを動かすことができます。

2. GCCをインストールする方法

2. GCCをインストールする方法
2. GCCをインストールする方法

まずは、C言語を動かすためにGCCをインストールしましょう。Linuxにはいくつかの種類(ディストリビューション)がありますが、ここでは代表的なものを紹介します。

Ubuntu / Debian系の場合


sudo apt update
sudo apt install build-essential

Fedora / CentOS / RHEL系の場合


sudo dnf groupinstall "Development Tools"

インストールが完了したら、次のコマンドでGCCが使えるか確認します。


gcc --version

gcc (Ubuntu 12.2.0-3ubuntu1) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.

上のようにバージョン情報が表示されれば、GCCのインストールは成功です。

3. はじめてのC言語プログラムを作ってみよう

3. はじめてのC言語プログラムを作ってみよう
3. はじめてのC言語プログラムを作ってみよう

次は実際にC言語のプログラムを作って動かしてみましょう。ターミナルを開いて、以下の手順で進めます。

  1. デスクトップに移動します。

cd ~/Desktop
  1. テキストエディタ(例:nano)で新しいファイルを作成します。

nano hello.c

次に、以下のコードを入力して保存します。


#include <stdio.h>

int main(void)
{
    printf("こんにちは、LinuxでC言語を始めましょう!\n");
    return 0;
}

保存は「Ctrl + O」で行い、「Ctrl + X」で終了します。

4. GCCでコンパイルして実行する

4. GCCでコンパイルして実行する
4. GCCでコンパイルして実行する

ファイルを保存したら、いよいよコンパイルして実行します。ターミナルで次のコマンドを入力します。


gcc hello.c -o hello

これは「hello.cをコンパイルして、実行ファイルhelloを作る」という意味です。エラーが出なければ、次のコマンドで実行できます。


./hello

こんにちは、LinuxでC言語を始めましょう!

画面にこのメッセージが表示されたら成功です!Linux上でC言語のプログラムが動作しました。

5. Makefileを使ってビルドを自動化しよう

5. Makefileを使ってビルドを自動化しよう
5. Makefileを使ってビルドを自動化しよう

毎回長いコマンドを入力するのは大変ですよね。そこで登場するのがMakefile(メイクファイル)です。これは、コンパイル作業を自動化してくれる便利な仕組みです。

「make」というコマンドを使うことで、GCCを自動で呼び出してプログラムをビルド(実行ファイルを作成)できます。

まずは、同じフォルダに「Makefile」という名前のファイルを作成します。


nano Makefile

次の内容を入力して保存します。


hello: hello.c
	gcc hello.c -o hello

clean:
	rm -f hello

これで「make」と入力するだけでコンパイルが実行されます。


make
./hello

こんにちは、LinuxでC言語を始めましょう!

また、「make clean」と入力すると、生成された実行ファイルを削除できます。


make clean

このように、Makefileを使えば作業が効率化され、プログラムの管理もしやすくなります。

6. よくあるトラブルとその対処法

6. よくあるトラブルとその対処法
6. よくあるトラブルとその対処法
  • 「gcc: command not found」と出る場合:
    GCCがインストールされていません。再度sudo apt install build-essentialを実行してください。
  • 「Permission denied」と表示される場合:
    実行権限がない可能性があります。chmod +x helloを入力して再実行しましょう。
  • 「undefined reference to 'main'」と出る場合:
    main関数の定義に誤りがある可能性があります。スペルを確認してください。

7. LinuxでC言語を学ぶメリット

7. LinuxでC言語を学ぶメリット
7. LinuxでC言語を学ぶメリット

LinuxはC言語の学習に最適な環境です。理由は次の通りです。

  • UNIX系システムなのでC言語との相性が抜群
  • 無料で使える高性能ツール(GCC・Make)が標準で利用可能
  • ターミナル操作を通じてプログラミングの基本が身につく

この環境をマスターすれば、システム開発や組み込み開発の基礎にもつながります。

まとめ

まとめ
まとめ

LinuxでC言語開発環境を整える流れを振り返ると、GCCの導入からターミナルでのコンパイル操作、そしてMakefileによる自動ビルドという一連の作業が、C言語を理解するうえで非常に重要な学びであることが分かります。LinuxはC言語を生み出したUNIXの系統であり、C言語との親和性が高い環境です。そのため、Linuxのターミナルを使ってGCCでプログラムをコンパイルする経験は、C言語の基礎力を高め、プログラムがどのように実行ファイルへ変換されていくかを実際に体験できる貴重な過程となります。特に、コマンドを入力して直接コンパイルを行う手順は、プログラミング初心者にとって動作の仕組みが理解しやすい構造となっており、Linux学習における大きなメリットのひとつです。 また、Makefileの存在はC言語学習をさらに効率的にしてくれます。複数のファイルを扱う大規模開発では毎回コンパイルコマンドを入力するのは手間がかかりますが、Makefileを使うことで依存関係を管理しながら自動でビルドを進められます。このビルド工程を理解することは、C言語だけでなく、他のプログラミング言語を学ぶ際にも非常に役立ちます。Linux環境でC言語を学ぶ利点は、こうした開発ツールの豊富さやシンプルな構造にあり、初心者が基礎を固めるには最適の環境と言えるでしょう。 以下には、今回学んだ内容を確認できるシンプルなサンプルプログラムを示します。このコードはGCCでコンパイルし、Linuxターミナル上で動作を確認するための基本的な例として活用できます。

サンプルプログラム


#include <stdio.h>

int main(void)
{
    printf("LinuxでC言語の基本を確認するサンプルプログラムです。\n");
    printf("GCCコンパイルとMakefileの理解に役立つ内容になっています。\n");
    return 0;
}

このプログラムは、LinuxでGCCを使ってコンパイルする流れや、Makefileに登録して自動化する方法を学んだ後に確認用として実行すると理解が深まります。Makefileを利用すれば、複雑なプログラムでも管理が容易になり、効率的に開発を進めることができます。Linux環境でC言語を学ぶことは、システムプログラミングや組み込み開発の基礎を固める上でも非常に有意義であり、これからの学習や実践的な開発の場でも必ず役立つ知識となるでしょう。 GCCの動作、Makefileによるビルド、ターミナル操作、これらの要素を総合して習得していくことで、実際の開発現場でも通用するスキルが自然と身につきます。LinuxでのC言語学習は、プログラミングの基礎だけでなく、より深いシステム理解への第一歩として大きな価値があります。

先生と生徒の振り返り会話

生徒

「先生、LinuxでC言語を扱うのは難しいと思っていましたが、実際にやってみると意外とわかりやすかったです!」

先生

「それは良い学びになりましたね。LinuxはC言語との相性が良いから、仕組みが理解しやすいんです。」

生徒

「GCCでコンパイルして動かす流れもシンプルでしたし、ターミナルでコマンドを打つのが少し楽しくなりました。」

先生

「コマンド操作に慣れてくると、プログラムがどう動くのかがより深く理解できますよ。」

生徒

「Makefileの便利さにも驚きました!小さなプログラムでも自動化しておくととても効率がいいですね。」

先生

「その通りです。プロジェクトが大きくなるほどMakefileの価値は高まります。今のうちに使い方を覚えておくと後で役に立ちますよ。」

生徒

「LinuxでC言語を学ぶと、ターミナルやファイル構造のことも理解できて、一石二鳥って感じがします!」

先生

「その感覚はとても大切です。Linuxの環境に慣れることでプログラミング全体の理解が深まるんですよ。」

生徒

「これからもMakefileやGCCを使って、もっと複雑なプログラムにも挑戦してみたいです!」

先生

「ぜひ挑戦してください。今回学んだ基礎はあらゆる開発に応用できますからね。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

LinuxでC言語を学ぶメリットは何ですか?Windowsよりも初心者におすすめな理由はありますか?

LinuxでC言語を学ぶ最大のメリットは、C言語がもともとUNIXというシステムで誕生した背景があるため、システムとの親和性が非常に高いことです。Linux環境では、GCCという標準的なコンパイラやビルドを自動化するMakefileといったプロフェッショナルな開発ツールが無料で簡単に利用できます。また、Windowsのようなマウス操作中心の環境とは異なり、ターミナル(黒い画面)でコマンドを入力して操作するため、プログラムがコンピュータ内部でどのように実行ファイルに変換され、動作するのかという根本的な仕組みを深く理解できるようになります。この経験は、将来的にシステム開発や組み込み開発の分野に進む際の強力な基礎となります。
カテゴリの一覧へ
新着記事
New1
C++
C++開発環境を最適化する方法!初心者向けに徹底解説(GCC, Clang, Visual Studio, CMake)
New2
C++
C++のビルドツール(Make・Ninja・MSBuild)の違いを完全ガイド!初心者でもわかる開発環境構築
New3
C++
C++のsizeof演算子を完全解説!初心者でもわかる役割と使いどころ
New4
C言語
C言語の関数定義と呼び出しを完全ガイド!初心者でも分かる基本の書き方
人気記事
No.1
Java&Spring記事人気No1
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.2
Java&Spring記事人気No2
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.3
Java&Spring記事人気No3
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.4
Java&Spring記事人気No4
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.5
Java&Spring記事人気No5
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.6
Java&Spring記事人気No6
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.7
Java&Spring記事人気No7
C++
CMakeの役割と導入方法をやさしく解説!C++開発環境構築ガイド
No.8
Java&Spring記事人気No8
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド