Uncategorized

【macOS】【Homebrew】gccをインストールする

べた

本稿ではHomebrewを使用したmacOSへのgccインストール手順を解説します。
C/C++開発時に必要になりますのでこの機会にインストールしてみてください。

gccとは

GCC : GNU Compiler Collectionとは、C, C++, Objective-C, Fortran, Goなどのコンパイラおよびライブラリ群です。
GNUプロジェクトの一つとしてRichard Matthew Stallmanさんによって開発され今日に至るまで保守改修されています。
当初C言語のコンパイラ(gcc)として開発されていましたが、現在はC++コンパイラ、Objective-Cコンパイラなど様々な言語に対応しています。

本稿での環境

筆者は以下環境で確認しています。(2025年3月現在)
MacBook Pro 13-inch, M2, 2022

Chip: Apple M2
Memory: 24GB
macOS: Sequoia 15.2

Homebrew: version 4.4.26

Homebrewのインストール

本稿ではHomebrewを利用したインストールを行います。
Homebrewをインストールしていない場合は以下記事を参考にインストールしてください。

あわせて読みたい
【macOS】Homebrewをインストールする
【macOS】Homebrewをインストールする

gccのインストール

それでは、gccのインストール手順を解説します。
以下コマンドでHomebrewを利用してgccをインストールできます。

$ brew install gcc

ワイワイとインストール情報が表示され終わったらインストール完了です。
以下コマンドでインストールできたか確認できます。

$ brew list | grep gcc
gcc

バージョンの確認

次はインストールされたgccのバージョン確認を行います。
以下のコマンドを実行してみてください。

$ gcc --version
Apple clang version 16.0.0 (clang-1600.0.26.6)
Target: arm64-apple-darwin24.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

おそらく上記のようにApple clangのバージョンが表示されていると思われます。
Apple clangはXcode(またはXcode Command Line Tools)をインストールしたときに一緒にインストールされたgcc互換のコンパイラです。
この状態でgccコマンドを実行されるとclangが呼ばれてしまいます。

(正直なところ、、ちょっとC言語に触れてみる/競技プログラミングはしない程度であればわざわざ別途gccをインストールする必要はないですが、本稿ではgccをちゃんと使いたい方向けに説明を続けます。)

Homebrewでインストールしたgcc(以後Homebrew gcc)は「gcc-14」などのお尻にバージョンが付いているので、まずは以下コマンドHomebrewでインストールしたgccのバージョンを確認します。

$ brew info gcc
==> gcc: stable 14.2.0 (bottled), HEAD
GNU compiler collection
https://gcc.gnu.org/
Installed
/opt/homebrew/Cellar/gcc/14.2.0_1 (1,914 files, 459.8MB) *
  Poured from bottle using the formulae.brew.sh API on 2025-03-27 at 20:42:25
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/g/gcc.rb
License: GPL-3.0-or-later WITH GCC-exception-3.1
==> Dependencies
Build: make ✘
Required: gmp ✔, isl ✔, libmpc ✔, mpfr ✔, zstd ✔
==> Options
--HEAD
	Install HEAD version
==> Analytics
install: 92,004 (30 days), 282,022 (90 days), 1,550,818 (365 days)
install-on-request: 44,501 (30 days), 140,997 (90 days), 719,349 (365 days)
build-error: 1,092 (30 days)

「Installed」の下に記載されたパスより、バージョンを認識します。

Installed
/opt/homebrew/Cellar/gcc/14.2.0_1 (1,914 files, 459.8MB) *
  Poured from bottle using the formulae.brew.sh API on 2025-03-27 at 20:42:25

筆者の環境だとバージョン14.2.0_1のようなので、「gcc-14」でHomebrew gccが使用できます。
試しにHomebrew gccからバージョンを確認します。

$ gcc-14 --version
gcc-14 (Homebrew GCC 14.2.0_1) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

clangではなく、Homebrew gccが呼ばれていることが確認できました。
以上で完了です。今後gccを使用する場合は「gcc-[version]」のコマンドを実行してください。
、、、とはいかないですよね。

gccコマンドでgccを呼び出す

本章では「gcc-[version]」コマンドではなく、「gcc」コマンドでHomebrew gccを呼び出すように設定します。

各種バイナリ・リンクの配置場所確認

最初に各種バイナリやリンクの配置場所を把握します。
※以下は筆者環境です。自環境を確認し適宜読み替えてください。

まずはclangバイナリの場所を確認します。

$ which gcc
/usr/bin/gcc

$ ls -l /usr/bin | grep gcc
-rwxr-xr-x  78 root   wheel     118848 Mar  6 19:06 gcc
-rwxr-xr-x  78 root   wheel     118848 Mar  6 19:06 llvm-gcc

一応ファイルの詳細も確認しましたが、シンボリックリンクではなく通常ファイルのようです。

次にHomebrewバイナリの場所を確認します。

$ which gcc-14
/opt/homebrew/bin/gcc-14

$ ls -l /opt/homebrew/bin | grep gcc-14
lrwxr-xr-x  1 beta3799  admin    56 Mar 27 20:42 aarch64-apple-darwin24-gcc-14 -> ../Cellar/gcc/14.2.0_1/bin/aarch64-apple-darwin24-gcc-14
lrwxr-xr-x  1 beta3799  admin    33 Mar 27 20:42 gcc-14 -> ../Cellar/gcc/14.2.0_1/bin/gcc-14

ファイル詳細先頭のファイルタイプを確認すると「l」になっており、「/opt/homebrew/bin」に配置されているのはシンボリックリンクとわかります。
リンクが示す先は「->」の右側で示され、「/opt/homebrew/Cellar/gcc/14.2.0_1/bin」にバイナリファイルの実体が置かれていることがわかります。(シンボリックリンクの指し示す先がシンボリックリンクであることもあるので不安な方はさらに上記ディレクトリの詳細も確認してみてください。)

まとめます。
各種バイナリやリンクは以下に配置されています。

  • clangのバイナリ(gcc): /usr/bin/
  • homebrew gccのバイナリ(gcc-14): /opt/homebrew/Cellar/gcc/14.2.0_1/bin/
  • homebrew gccを指し示すシンボリックリンク(gcc-14): /opt/homebrew/bin/

シンボリックリンクの作成

各種バイナリ・リンクの位置がわかった後は「gcc」という名前で「「homebrew gccを指し示すシンボリックリンク」を指し示すシンボリックリンク」を作成し、「gcc」コマンドでclangではなくHomebrew gccを呼び出すようにします。

以下のlnコマンドを使用します。

$ ln -s [リンク元のパス] [リンク作成先のパス]

筆者環境だと以下となります。
(わかりやすいようにリンク元と同じディレクトリにシンボリックリンクを作成しています)

$ ln -s ./gcc-14 /opt/homebrew/bin/gcc

これで準備は完了です。
一度ターミナルを立ち上げ直して、以下コマンドでバージョン確認を行なってください。

$ gcc --version
gcc (Homebrew GCC 14.2.0_1) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

clangではなく、Homebrew gccが呼ばれていることが確認できました。
以上で完了です。

g++の対応

おそらくgccだけでなくg++(C++コンパイラ)もclangではない方を使用したくなると思いますのでgccと同じようにg++もシンボリックリンクを作成しておきます。

$ ln -s ./g++-14 /opt/homebrew/bin/g++

リンク作成後はターミナルを立ち上げ直して以下コマンドでバージョン確認をしてください。

$ g++ --version
g++ (Homebrew GCC 14.2.0_1) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

g++でも同様にHomebrew g++が呼ばれることを確認できました。
上記で完了です。

うまくいかない方へ

ターミナルを立ち上げ直してみてもHomebrew gccへの切り替えが上手くいかない方は、clangのバイナリがあるディレクトリの方が優先して読まれる設定になっているかもしれません。

以下でパスを確認してみてください。

$ echo $PATH

以下の「問題なし」の例のようにシンボリックリンクを作成したディレクトリ(筆者環境では/opt/homebrew/bin)がclangのバイナリがあるディレクトリ(筆者環境では/usr/bin)より先に設定されてあれば、呼び出し優先度的に問題ないですが、、「問題あり」の例のようにシンボリックリンクを作成したディレクトリがclangのバイナリがあるディレクトリより後に設定されていた場合はclangが優先的に呼ばれてしまいます。

問題なし
/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
問題あり
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/homebrew/bin:/opt/homebrew/sbin

そのような場合は.zshrcにてパスを変更し、シンボリックリンクを作成したディレクトリが先に読まれるようにしてください。
環境によって異なると思いますが、以下文を追加してあげれば大体は対応できると思います。

export PATH=[シンボリックリンクを作成したディレクトリ]:$PATH

筆者環境では以下です。

export PATH=/opt/homebrew/bin:$PATH

上記設定を行い、以下コマンドで.zshrcファイルを読み込み直したら完了です。

$ source .zshrc

これで「gcc」コマンドでHomebrew gccが呼ばれるようになります。
今度こそ完了です。

おわりに

本稿ではHomebrewを使用したmacOSへのgccインストール手順を解説しました。
皆さんの参考になりましたら幸いです。

ABOUT ME
べた
べた
エンジニア
某SIer勤務の30代。

PM/PLやったりSEやったり、たまにPG、ごくまれにインフラ周り触ったり、、自分でもよくわかってない立ち位置です。

30歳を過ぎた自分の技術力の無さに絶望し、初心に戻り、勉強→発信を行います。
記事URLをコピーしました