閉じる

XcodeとHomebrewで始めるCコンパイラ導入と設定(Mac)

MacでC言語を始める際は、コンパイラの用意が第一歩です。

MacにはXcode由来のclangとHomebrewから導入するgccという2つの代表的な選択肢があります。

本記事では、C言語初心者の方が迷わず準備できるように、Xcode(Command Line Tools)の導入確認からHomebrewでのgcc追加、実際のコンパイルと実行、つまずきやすいエラーの直し方まで順に解説します。

MacでCコンパイラを準備する

Cコンパイラとは

Cコンパイラは、C言語で書かれたソースコード(.cファイル)を、Macが実行できる形式のプログラムに変換するツールです。

内部ではプリプロセス、コンパイル、アセンブル、リンクという段階を経て、最終的に実行可能ファイル(a.outや指定名のバイナリ)を生成します。

Macでは主にAppleのclangGNUのgccが利用されますが、どちらもC言語の学習には十分な機能を備えています。

Macの選択肢: clang(Xcode)とgcc(Homebrew)

Macには標準的にXcodeのコンパイラ群(Apple clang)を導入する方法と、パッケージマネージャHomebrewでGNU GCCを導入する方法があります。

初心者の方はまずCommand Line Toolsでclangを使えるようにするのが簡単です。

必要に応じて後からHomebrewでgccを追加すると、授業やオンラインジャッジの指定に柔軟に対応できます。

以下に両者の要点をまとめます。

項目XcodeのclangHomebrewのgcc
導入方法XcodeまたはCommand Line ToolsをインストールHomebrewをインストール後、brew install gcc
実体Apple clang(LLVM系)GNU GCC(FSF版)
コマンド名clangccgcc-14などバージョン付き(注意: gccはApple clangのことが多い)
更新macOSやXcode更新に追随brew upgradeで更新
初心者適性最も簡単追加で導入するとベター
備考Xcode GUIと連携が容易バージョンを明示して使い分けやすい

まずclangを使えるようにして、必要があればgccを追加という進め方が無理がありません。

初心者におすすめの導入と設定の流れ

最短で進めるなら、次の順番をおすすめします。

まずCommand Line Toolsの導入clangを使えるようにし、動作確認の後、必要になったらHomebrewとgccを追加します。

最後に簡単なCプログラムを作ってコンパイルと実行を試し、環境が整っているか確認します。

Xcode(Command Line Tools)のインストール

Xcodeの入手(App Store)

XcodeはApple公式の統合開発環境です。

App Storeで「Xcode」を検索してインストールできます。

ただし容量が大きく(10GB以上)ダウンロードに時間がかかります。

コンパイラだけ使いたい場合は、Xcode本体を入れずにCommand Line Tools(CLTools)だけで十分です。

Command Line Toolsの導入(xcode-select –install)

CLToolsを入れるとclangmakeなどの開発ツールが使えるようになります。

次のコマンドを実行して指示に従ってください。

Shell
# Command Line Toolsのインストールダイアログを表示
xcode-select --install

インストールが完了すると、ターミナルからclangによるコンパイルが可能になります。

インストール確認(clang –version)

インストールできたか、バージョン表示で確認します。

Shell
# clangのバージョンを表示
clang --version
実行結果
Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Target: arm64-apple-darwin23.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

バージョンやターゲットはMacの機種やOSによって異なりますが、Apple clangと表示されればOKです。

エラー対処(xcrun: error)

macOS更新直後などに以下のエラーが出ることがあります。

Shell
# 代表的なエラー例
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

この場合は次のいずれかで解決できます。

Shell
# 1) CLToolsを再インストール
xcode-select --install

# 2) 状態をリセット
sudo xcode-select --reset

# 3) Xcode本体を使っている場合はDeveloperパスを切替
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

管理者パスワードを求められる場合があります

再実行後にclang --versionで動作確認してください。

Homebrewでgccをインストール

Homebrewの準備(インストール/更新)

HomebrewはmacOS向けのパッケージマネージャです。

未導入なら以下でインストールします。

Shell
# Homebrewのインストール(公式手順)
# 実行中に表示される指示に従ってパス設定を行ってください
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Apple Silicon(M1/M2/M3)では/opt/homebrew、Intel Macでは/usr/local配下に入るのが一般的です。

インストール後は次で確認します。

Shell
# brewコマンドの存在とバージョンを確認
brew --version

# Homebrewのリポジトリ情報を最新化
brew update
実行結果
Homebrew 4.3.0
Homebrew/homebrew-core (no Git repository)
Updated 1 tap (homebrew/core).
zsh

command not found: brewとなる場合は、brewが案内するbrew shellenvの設定を反映してください。

Shell
# 例) Apple Siliconのzsh環境での設定(案内に従ってください)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

gccの導入(brew install gcc)

準備ができたらgccを導入します。

Shell
# GCCのインストール
brew install gcc

インストールには時間がかかることがあります。

完了後、実行ファイルはgcc-14のようにバージョン付きで提供されます。

バージョン確認(gcc-XX –version)

次でGNU GCCが使えるか確認します。

Shell
# どのgccが呼ばれるか確認
which -a gcc gcc-14

# バージョンを確認
gcc-14 --version
実行結果
/usr/bin/gcc
/opt/homebrew/bin/gcc-14
gcc-14 (Homebrew GCC 14.2.0) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
注意

gccとだけ打つと、Apple clangのラッパーが起動することがあります。

GNU版を使いたい時はgcc-14のようにバージョン付きで呼び出してください

環境設定(PATH)の確認

Homebrewのパスが通っているかを確認します。

Apple Siliconなら/opt/homebrew/bin、Intelなら/usr/local/binPATHに含まれる必要があります。

Shell
# シェル種別とPATHを確認
echo $SHELL
echo $PATH | tr ':' '\n'  # 見やすく改行表示

# gcc-14の実体を確認
which -a gcc-14

もしwhich -a gcc-14が何も返さない場合、Homebrewのパス設定を見直してください。

zshなら~/.zprofile、bashなら~/.bash_profileへの追記が一般的です。

/usr/bin配下に独自シンボリックリンクを作るのは非推奨です。

Cプログラムのコンパイルと実行

ファイル作成(hello.c)

お試し用にhello.cを作ります。

エディタは何でも構いませんが、ここでは内容のみ示します。

C言語
// hello.c - 最初のCプログラムの例
// コンパイル: clang -std=c17 -Wall -Wextra -o hello_clang hello.c
//           または gcc-14 -std=c17 -Wall -Wextra -o hello_gcc hello.c
#include <stdio.h>  // printfを使うために必要

int main(void) {
    // 画面に文字を表示します
    printf("Hello, World!\n");
    return 0; // 正常終了を表します
}

clangでコンパイルと実行

clangを使ってコンパイルし、実行します。

Shell
# 警告を出しやすくし、C17規格でビルド、出力ファイル名を指定
clang -std=c17 -Wall -Wextra -o hello_clang hello.c
# シンプルなビルドは以下で可能
clang -o hello_clang hello.c

# 実行
./hello_clang
実行結果
Hello, World!

gccでコンパイルと実行

Homebrewのgccを使う場合は、バージョン付きのコマンド名を用います。

Shell
# GNU GCCを明示してビルド
gcc-14 -std=c17 -Wall -Wextra -o hello_gcc hello.c
# シンプルなビルドは以下で可能
gcc-14 -o hello_clang hello.c
# 実行
./hello_gcc
実行結果
Hello, World!

授業や採点環境でGCCが指定されている場合は、gcc-14のようにGNU版を呼び出すのが確実です。

出力ファイル名を指定する(-o)

-oを付けないと、デフォルト名a.outが生成されます。

任意の名前を付けると後で管理しやすくなります。

Shell
# 出力名を省略した場合
clang hello.c
./a.out

# 出力名を指定した場合
clang -o hello hello.c
./hello
実行結果
Hello, World!
Hello, World!

複数の実行ファイルを使い分けたい時は-oで名前を付けるのがおすすめです。

よくあるエラーと簡単な直し方

xcrun: errorやclangが見つからない

macOS更新後や初回導入時に発生します。

以下で復旧できます。

Shell
# 代表パターン
xcode-select --install     # CLToolsを再導入
sudo xcode-select --reset  # 状態リセット

実行時にpermission deniedやcommand not found

./a.outのように先頭に./を付けて実行してください。

カレントディレクトリはPATHに含まれないため、a.outだけでは実行できません。

Shell
# NG
a.out         # ← 見つからない

# OK
./a.out
実行結果
zsh: command not found: a.out
Hello, World!

printfが使えない(implicit declaration of function ‘printf’)

#include <stdio.h>の書き忘れが原因です。

C言語
// 誤りの例: ヘッダがない
int main(void) {
    printf("Hi\n"); // エラー: printfが宣言されていない
    return 0;
}
Shell
# コンパイルエラーの例
clang -std=c17 -Wall -Wextra bad.c
実行結果
bad.c:3:5: warning: implicit declaration of function 'printf' is invalid in C99

修正は#include <stdio.h>を先頭に追加するだけです。

セミコロン忘れ(expected ‘;’ after …)

行末の;を付け忘れるとエラーになります。

エラーメッセージに表示される行番号付近を確認し、直前の行の末尾も合わせて見直します。

file not found: hello.c

コンパイルコマンドを実行するディレクトリにhello.cが無いケースです。

lsでファイルの存在を確認し、cdで正しい場所に移動するか、ファイルのフルパスを指定してください。

Shell
# 例) ファイルの存在確認と移動
ls
cd path/to/your/sources
clang -o hello hello.c

gccとclangの混同に注意

gccコマンドがApple clangの別名であることが多いため、GNU GCCを使いたい時はgcc-14のようにバージョン付きで呼びます

確認にはwhich -a gcc gcc-14が便利です。

まとめ

本記事では、MacでCコンパイラを準備するために、Xcode(Command Line Tools)によるclangの導入とHomebrewによるgccの追加、そして実際のコンパイルと実行の手順を丁寧に解説しました。

まずはCommand Line Toolsでclangを使えるようにし、必要に応じてHomebrewでGNU GCCを追加するのが、初心者がつまずきにくい王道の流れです。

併せてバージョン確認PATHの点検よくあるエラーの直し方を覚えておくと、開発の立ち上げが格段にスムーズになります。

準備が整ったら、まずは小さなプログラムから手を動かし、コンパイルと実行に慣れていきましょう。

この記事を書いた人
エーテリア編集部
エーテリア編集部

プログラミングの基礎をしっかり学びたい方向けに、C言語の基本文法から解説しています。ポインタやメモリ管理も少しずつ理解できるよう工夫しています。

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

URLをコピーしました!