🌊

MacでのC言語の実行環境変更メモ

2020/11/29に公開

変更の私のモチベーションは以下。

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

https://qiita.com/yoskeoka/items/541b6a4260487fbc2c0f

私も以下のような事象に遭遇しがちである。

https://qiita.com/pochiMasahiro/items/eb9c1a95fc01228e1dd7

Clangとは?

プロジェクトの目標は、GNUコンパイラコレクション (GCC) を置き換えることのできるコンパイラを提供することである。開発は完全にオープンソースの方法で進められており、アップルやGoogleといった大企業も参加・資金提供している。ソースコードは、イリノイ大学/NCSAオープンソースライセンスで提供されている。バージョン9.0.0からはライセンスがLLVM例外付きApache License 2.0に変更された

https://ja.wikipedia.org/wiki/Clang

私もdefaultから変更してなかったので、変更したい。

gccコマンドでApple clangが指定されている。

自分の環境では以下の記事の手順で行なった。
https://mem-archive.com/2019/08/17/post-2038/

シンボリックリンクを貼りかえ。

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

clangコンパイラが優先されるので、shellのprofileに以下を追加。

export PATH="/usr/local/bin:$PATH"

最新バージョンは、https://gcc.gnu.org/をみると

GCC 10.2 released [2020-07-23]

となっており、最新バージョンが入った(はず)。

この辺あまり詳しくないので調べていきたい。

なぜApple clangが存在するか

Quoraの議論。

https://www.quora.com/Compilers-Why-did-Apple-create-Clang

参考

Discussion