閉じる

MacでC言語環境構築完全ガイド|最速で開発を始める手順

Macでは最初から多くの開発ツールが入っていますが、そのままではC言語を快適に書くことはできません。

本記事では、MacでC言語の環境を最速で整え、ターミナルでもエディタでもすぐに開発を始められる状態を目指して、Xcodeの導入からVS Code連携、デバッグの方法までを順序立てて詳しく解説します。

MacでC言語環境構築の全体像

MacでC言語開発を始めるための前提知識

まず、MacでC言語開発を始めるにあたって、どのような仕組みでプログラムが動くのかを軽く押さえておきます。

MacでC言語プログラムを動かす流れは、基本的には次のようになります。

  1. テキストエディタや統合開発環境(IDE)で.cファイルを作成する
  2. コンパイラ(gccやclang)でソースコードをコンパイルし、実行ファイルを作る
  3. できあがった実行ファイルをターミナルから起動して実行する

Macでは、コンパイラと開発ツールのセットとしてXcode Command Line ToolsXcode本体が利用できます。

また、エディタとしてはVS Codeを組み合わせることで、補完やデバッグがしやすい環境を構築できます。

MacでC言語環境構築に必要なもの

MacでC言語開発を行う際に必要なものは、主に次の3つです。

[図解作成の指示]

  • タイトル: 「C言語開発に必要な3要素」
  • 3つのボックスを横並びまたは三角形に配置
    • 「コンパイラ(gcc/clang)」
    • 「エディタ・IDE(VS CodeやXcode)」
    • 「デバッガ(lldb)」
  • 真ん中に「macOS」を置き、それぞれがmacOSとつながっているイメージ

1つ目はコンパイラです。

Macでは、実際にはgccという名前で呼び出しても実体はclangというコンパイラが動くことが多く、Appleが提供するXcode Command Line Toolsに含まれています。

2つ目はエディタまたはIDEです。

Mac標準のテキストエディタ(TextEdit)でも書けますが、シンタックスハイライトや補完機能があるVS CodeXcodeを使うことで、ミスを減らしながら効率良く開発できます。

3つ目はデバッガです。

Macではlldbというデバッガが標準的に利用され、Xcodeにも統合されていますし、ターミナルから単体で使うことも可能です。

Xcodeとコマンドラインツールのインストール

Xcode Command Line Toolsのインストール手順

C言語の開発を最速で開始するのであれば、Xcode本体を入れずに、まずはXcode Command Line Toolsだけをインストールする方法が便利です。

これはコンパイラやビルドに必要な最低限のツールをまとめたパッケージで、容量も小さく、インストールも簡単です。

具体的な手順を説明します。

  1. アプリケーションフォルダから「ターミナル」を起動します。
    Launchpadから「その他」→「ターミナル」とたどっても構いません。
  2. 次のコマンドを入力してEnterキーを押します。
Shell
xcode-select --install
  1. 「コマンドライン・デベロッパ・ツールをインストールしますか?」といったダイアログが表示されるので、「インストール」を選択します。
  2. ダウンロードとインストールが完了するまで待ちます。完了すれば、gccclangなどのコンパイラが利用できるようになっています。

インストールが終わったら、後ほど説明するgcc --versionなどのコマンドで確認しておくと安心です。

Xcode本体を使ったC言語開発の準備

Xcode本体は、Apple公式の統合開発環境(IDE)で、GUIアプリ開発のイメージが強いですが、C言語の開発環境としても十分に利用できます

Xcode本体を使うメリットは、プロジェクト管理機能・GUIデバッガ・コード補完などが一体となって提供される点です。

導入手順は次のとおりです。

  1. App Storeを開き、「Xcode」を検索してインストールします。
    ファイルサイズが大きいので、時間に余裕があるときに行うと良いです。
  2. Xcodeを起動すると、初回は追加コンポーネントのインストールを求められる場合があります。その場合は指示に従ってインストールします。
  3. C言語のプロジェクトを作成するには、「Create a new Xcode project」→「Command Line Tool」を選択します。
  4. プロジェクト作成画面で、Product Nameを入力し、LanguageをCに設定して進めれば、C言語用のプロジェクトが作成されます。

これで、Xcode上でソースコードの編集・ビルド・デバッグまでを一貫して行える環境が整います。

XcodeとCommand Line Toolsの違い

Xcode本体とXcode Command Line Toolsは、どちらもCコンパイラを含みますが、役割が大きく異なります。

以下の表で違いを整理します。

項目Xcode本体Xcode Command Line Tools
目的GUIベースの統合開発環境ターミナルからの開発用ツール群
含まれるものエディタ、プロジェクト管理、ビルド・デバッグUIclang、gccコマンド、makeなど
インストール方法App Storeからインストールxcode-select --install
容量非常に大きい(数GB)比較的小さい
対象者GUIでしっかり開発したい人最低限で良い、ターミナル中心の人

最速でC言語を始めたい場合は、まずCommand Line Toolsのみを入れておき、必要に応じてXcode本体を追加インストールするのがおすすめです。

ターミナルでのC言語コンパイル環境構築

gcc(Clang)が使えるか確認する方法

Command Line Toolsのインストールが終わったら、コンパイラが正しく使えるかどうかを確認します。

ターミナルを開き、次のコマンドを実行します。

Shell
gcc --version
実行結果
Configured with: --prefix=/Library/Developer/CommandLineTools/usr ...
Apple clang version 15.0.0 (clang-1500.0.40.1)
Target: arm64-apple-darwin24.0.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

ここでポイントになるのは、gccと打っても中身はApple clangであるという点です。

LinuxではgccがGNUコンパイラを指しますが、macOSでは互換性のために同じコマンド名でclangが呼び出されるようになっています。

同様に、次のコマンドでも確認できます。

Shell
clang --version

出力が表示されれば、コンパイラの準備はできています。

PATH設定とコンパイラバージョンの確認

通常、Xcode Command Line Toolsを入れた直後であれば、特別なPATH設定をしなくてもgccclangが利用できるようになっています。

どこにインストールされているかを確認したい場合は、次のコマンドを使います。

Shell
which gcc
実行結果
/usr/bin/gcc

または次のようになる場合もあります。

/Library/Developer/CommandLineTools/usr/bin/gcc

このパスが空だったり、gccが見つからない場合は、Command Line Toolsのインストールが正常に完了していない可能性があります。

その場合は、もう一度xcode-select --installを実行してみてください。

現在選択されている開発者ツールパスは、次のコマンドで確認できます。

Shell
xcode-select -p

出力として/Applications/Xcode.app/Contents/Developer/Library/Developer/CommandLineToolsなどが表示されます。

Xcode本体をインストールしている場合は、ここを切り替えることで、どのツールチェーンを使うかを変更できます。

MacでC言語のHello Worldをコンパイルする手順

動作確認を兼ねて、最初のC言語プログラムとしてHello Worldを作成してみます。

まず、好きなディレクトリに移動して、ソースファイルを作成します。

ここではホームディレクトリにc_samplesというフォルダを作る例を示します。

Shell
mkdir -p ~/c_samples
cd ~/c_samples

エディタでhello.cを作成し、次の内容を書き込みます。

ここではターミナル上のnanoエディタを使う例を示しますが、VS Codeなど他のエディタでも構いません。

Shell
nano hello.c

hello.cの内容:

C言語
#include <stdio.h>  // 標準入出力を使うためにインクルードします

// プログラムのエントリーポイントであるmain関数
int main(void) {
    // 画面に"Hello, World!"を表示します
    printf("Hello, World!\n");

    // 正常終了を表す0を返します
    return 0;
}

保存したら、次のコマンドでコンパイルします。

Shell
gcc hello.c -o hello

このコマンドの意味は次の通りです。

gcc hello.chello.cをコンパイルし、-o helloで出力ファイル名をhelloに指定しています。

続いて、生成された実行ファイルを起動します。

Shell
./hello
実行結果
Hello, World!

このように表示されれば、MacでのC言語環境構築はほぼ完了です。

今後も同様の流れで、ソースコードを作成し、gccでコンパイルして実行していきます。

複数ファイルのCプログラムをコンパイルする方法

実用的なプログラムでは、ソースコードを複数のファイルに分割することが多いです。

ここでは、2つのソースファイルからなる簡単な例を通じて、複数ファイルのコンパイル方法を説明します。

main.cutil.cを作成し、簡単な分割例を示します。

C言語
/* main.c */

#include <stdio.h>

// util.cで定義している関数を使うことを宣言
int add(int a, int b);

int main(void) {
    int x = 2;
    int y = 3;

    // 別ファイルにあるadd関数を呼び出します
    int result = add(x, y);

    printf("%d + %d = %d\n", x, y, result);

    return 0;
}
C言語
/* util.c */

#include <stdio.h>

// 2つの整数を足し算して結果を返す関数
int add(int a, int b) {
    return a + b;
}

これら2つのファイルを同じディレクトリに保存したうえで、次のようにコンパイルします。

Shell
gcc main.c util.c -o calc

実行します。

Shell
./calc
実行結果
2 + 3 = 5

このように、複数ファイルをまとめてコンパイルする場合は、gccの後にファイル名を並べて指定し、最後に-o 実行ファイル名を付けるだけで構いません。

規模が大きくなってくると、Makefileを使ってビルド手順を自動化することもよくあります。

Macで快適にC言語開発を行う設定

VS CodeでのC言語開発環境構築

VS Codeは軽量で拡張性が高く、C言語開発にも非常に適しています。

ここでは、VS CodeとXcode Command Line Toolsを組み合わせた開発環境を構築する流れを説明します。

手順は次の通りです。

  1. VS Code公式サイトからmacOS版をダウンロードしてインストールします。
  2. VS Codeを起動し、日本語化したい場合は「Japanese Language Pack for Visual Studio Code」をインストールします。
  3. 後述するC/C++拡張機能を導入することで、C言語向けの補完やデバッグ機能が使えるようになります。

VS Codeはあくまでエディタであり、コンパイラ自体はXcode Command Line Toolsに含まれるclangを利用します。

そのため、先にCommand Line Toolsを入れておくことが前提となります。

C言語用拡張機能とコード補完の設定

VS CodeでC言語を快適に書くためには、Microsoft製の「C/C++」拡張機能をインストールするのが基本です。

インストール後は、Cファイルを開くと自動的にc_cpp_properties.jsonなどの設定ファイルが提案される場合があります。

ここでは、最低限の設定でコード補完や警告表示が機能する状態を目指します。

  1. VS Codeで.cファイルを開きます。
  2. 画面右下に「Cコンパイラパスを選択しますか?」のような通知が出た場合、/usr/bin/clangを選びます。
  3. 必要に応じて、プロジェクト用のフォルダを作り、VS Codeでそのフォルダを「フォルダを開く」から開きます。

簡単な.vscode/tasks.jsonを用意して、ビルド手順をタスクとして登録することもできます。

JSONC
// .vscode/tasks.json のサンプル
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build C program",
            "type": "shell",
            "command": "gcc",
            "args": [
                "main.c",        // コンパイル対象のソースファイル
                "-o",
                "main"           // 出力される実行ファイル名
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": [
                "$gcc"           // gcc形式のエラーメッセージを認識させる設定
            ]
        }
    ]
}

この設定をすると、VS Codeの「ターミナル」→「ビルドタスクの実行」からビルドできるようになります。

デバッガ(lldb)の設定と基本的な使い方

Macでは、GDBではなくlldbが標準デバッガとして用意されています。

ターミナルから直接使うこともできますし、VS Codeと連携させることも可能です。

まず、デバッグ情報付きでコンパイルする必要があります。

次のように-gオプションを付けてコンパイルします。

Shell
gcc -g hello.c -o hello

次に、lldbを起動して実行ファイルを指定します。

Shell
lldb ./hello

lldbのプロンプトが表示されたら、次のような操作が可能です。

実行結果
(lldb) break set -n main    // main関数の先頭にブレークポイントを設定
(lldb) run                  // プログラムを実行
(lldb) next                 // 1行ずつステップ実行
(lldb) print x              // 変数xの値を表示
(lldb) continue             // 次のブレークポイントまで実行
(lldb) quit                 // デバッガを終了

VS Codeからlldbを利用する場合は、拡張機能「CodeLLDB」などを導入し、.vscode/launch.jsonを設定します。

簡易な例を以下に示します。

JSONC
// .vscode/launch.json のサンプル (CodeLLDBを利用)
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug C Program",
            "type": "lldb",
            "request": "launch",
            "program": "${workspaceFolder}/hello", // 実行ファイルのパス
            "args": [],
            "cwd": "${workspaceFolder}",
            "preLaunchTask": "build C program"    // tasks.jsonで定義したビルドタスク
        }
    ]
}

この設定で、VS Codeの「実行とデバッグ」からブレークポイント付きのデバッグが行えるようになります。

よくあるエラーとMac特有の注意点

MacでC言語を開発していると、環境固有のエラーや挙動の違いに遭遇することがあります。

代表的なものと対処のポイントを紹介します。

gccの実体がclangであることによる違い

macOSのgccは実際にはclangなので、Linuxなどでよく使われるGNU拡張に依存したコードがそのままではコンパイルできないことがあります。

エラー例としては、__attribute__((...))の扱いや、一部の拡張構文の違いなどです。

可能な限り標準Cに沿った書き方を意識すると、Mac・Linux・Windowsなど異なる環境でもコンパイルしやすくなります。

実行権限やパスの問題

コンパイルした実行ファイルを./a.outのように実行しようとして、次のようなエラーが出ることがあります。

zsh: permission denied: ./hello

この場合は、ファイルに実行権限が付いているか確認します。

Shell
ls -l hello

もし実行権限<x>が付いていない場合は、次のように付与します。

Shell
chmod +x hello

通常、gccでコンパイルした実行ファイルには最初から実行権限が付いていますが、権限を変更したり、別の環境からコピーしてきた場合などに問題になることがあります。

ライブラリやヘッダファイルの違い

Linux向けを前提としたサンプルコードでは、#include <malloc.h>のような、macOSには存在しないヘッダが使われていることがあります。

macOSでは、メモリ確保に関する宣言は#include <stdlib.h>に含まれているため、必要に応じてヘッダを置き換える必要があります。

また、外部ライブラリを使いたい場合は、Homebrewなどのパッケージマネージャを利用してインストールし、-I-Lオプションでインクルードパスやライブラリパスを指定することもあります。

例えば、外部ライブラリfooをリンクする際には、次のように指定します。

Shell
gcc main.c -L/usr/local/lib -lfoo -o main

このように、ヘッダファイルの位置やライブラリ名がLinuxと異なる場合があるため、Mac向けのインストール手順やコンパイルオプションを確認することが大切です。

まとめ

MacでC言語の環境を整えるには、まずXcode Command Line Toolsを導入してコンパイラとデバッガを有効にし、ターミナルからHello Worldをコンパイル・実行できる状態にすることが出発点となります。

そこから、Xcode本体やVS CodeとC/C++拡張機能、lldbデバッガを組み合わせることで、補完やステップ実行を備えた快適な開発環境を構築できます。

macOSではgccの実体がclangである点やヘッダ・ライブラリの差異など、いくつかの注意点はありますが、それらを押さえておけば、MacはC言語の学習・実務開発どちらにも十分に対応できる強力なプラットフォームになります。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!