32
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

macOSでGCCのg++を使用する。

Posted at

動機

macOSにXcodeをインストールした状態(おそらくほとんどの開発用Macはこの状態)では、g++コマンドでclang版が動作するため、GCC版と若干挙動が異なる。
Linuxでgcc,g++を使う場合はGCC版が基本となることが多いので、maxOSでの動作もLinux版に合わせておきたい。

maxOSの初期状態でのg++

バージョン情報を出力すると、Apple clangと表示されていることがわかる。

$ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.3 (clang-1103.0.32.59)
Target: x86_64-apple-darwin19.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

macOSにGCCのg++を導入する

HomebrewでGCCをインストールする。

brew install gcc

インストールされたものを g++ コマンドで使えるようにシンボリックリンクを張る。
コマンドとしては、g++のバージョンによってインストールされるファイル名が/usr/local/bin/g++-9などのように異なるので、最新のものをg++として使用するようにしている。

bash
sudo ln -sf $(ls -d /usr/local/bin/* | grep "/g++-" | sort -r | head -n1) /usr/local/bin/g++
fish
sudo ln -sf (ls -d /usr/local/bin/* | grep "/g++-" | sort -r | head -n1) /usr/local/bin/g++

導入後

GCC版に切り替わった。

$ g++ --version
g++ (Homebrew GCC 9.3.0_1) 9.3.0
Copyright (C) 2019 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.

元に戻したいとき

作成したシンボリックリンクを解除する。

sudo unlink /usr/local/bin/g++
32
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?