🌊
MacでのC言語の実行環境変更メモ
変更の私のモチベーションは以下。
macOSにXcodeをインストールした状態(おそらくほとんどの開発用Macはこの状態)では、g++コマンドでclang版が動作するため、GCC版と若干挙動が異なる。
Linuxでgcc,g++を使う場合はGCC版が基本となることが多いので、maxOSでの動作もLinux版に合わせておきたい。
私も以下のような事象に遭遇しがちである。
Clangとは?
プロジェクトの目標は、GNUコンパイラコレクション (GCC) を置き換えることのできるコンパイラを提供することである。開発は完全にオープンソースの方法で進められており、アップルやGoogleといった大企業も参加・資金提供している。ソースコードは、イリノイ大学/NCSAオープンソースライセンスで提供されている。バージョン9.0.0からはライセンスがLLVM例外付きApache License 2.0に変更された
私もdefaultから変更してなかったので、変更したい。
gccコマンドでApple clangが指定されている。
自分の環境では以下の記事の手順で行なった。
シンボリックリンクを貼りかえ。
$ 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の議論。
Discussion