<bits/stdc++.h>をmacOS Catalinaで使う
macOS Mojaveの時は上手くいってたのですが、アップグレードしたら使えなくなりました。なので、また使えるようになるまでにやったことを書き残したいとおもいます。
brewでgccを入れ直す
以前の記事でも書きましたが、macはデフォルトの状態でもgccが入っていますが、古いです。なのでbrewを使って新しいgccを入れます。自分はMojaveの時ににインストールしていましたが、一度アンインストールして入れ直しました。
brew uninstall gcc
brew install gcc
パスを通す
ここでwhichコマンドを使ってどこにあるg++(gcc)が動いているかを調べます。
which g++
これを実行して、「/usr/local/bin/g++」と表示されなかった場合、brewでインストールしたものではなく、古いgccが動いてる可能性が高いです。なので、入れたgccが動くようにパスを通します。
ln -s /usr/local/Cellar/gcc/9.2.0_1/bin/g++-9 /usr/local/bin/g++
n -s /usr/local/Cellar/gcc/9.2.0_1/bin/gcc-9 /usr/local/bin/gcc
これでg++が動かなかった場合、すでに作っているシンボリックリンクが邪魔している場合があります。なので ls -l /usr/local/bin/g++
と入力して、上のパス以外のものが出てきたら、rmしてください。
xcode-select --install
これは、std/c++.h を使えるようにするのに直接的に関わるのかはわかりません。というのも、自分は上の工程を行う前にこれを行なったからです。上の工程だけでは動くようにならなかった人は、これもやってみてください。
xcode-select --install
あとがき
当たり前のように、パスを通すとかシンボリックリンクを削除とか言いましたが、コマンドラインについて詳しくない人には、よくわからなかったかもしれません。このあたりの知識があまりない人は、「mac ターミナル 入門」などと調べて学んでみると良いと思います。面白いですし、PCを使っているなら学んで損はないと思います。書籍で学ぶ場合は、これから学ぶmacOSターミナルという本がおすすめです。私はこの本で学びました。ちょっと高いですが、丁寧な解説でわかりやすかったです。なおこの本、初心者がちんぷんかんぷんな前書きから始まるので、前書きを飛ばして読むのがオススメです。
以上です。