macでmojaveからcatalinaにしたことで/usr/includeが消えてcppがコンパイルできなくなった

そして /usr/includeを復帰させることができないので、、、考えるのを辞めた。

結論

g++ --sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk <input file>

でbuild可能

経緯

とりあえず最新にするかーとcatalinaにアップデート後に、何気なくcppのコンパイルを試したら死んだ。

競プロ用に #include <bits/stdc++.h> しているのだが、それが
fatal error: assert.h: No such file or directory
というエラーで止まってしまうようになった。

諸々調べたところ、mojaveからcatalinaにアップデートすると/usr/includeが蒸発し、もう二度と帰ってこれないところに行き着くらしい。(/usr配下にはpermissionの関係でファイル作成等は不可っぽい)

ただし、xcodeやcommand line tool をインストールしていると下記のpathにヘッダファイル等が詰め込まれているようだ。

/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk

 (環境によってやや場所は異なりそう)

ビルドする時にsysrootとしてそこを指定すれば通った。
やっぱり早いところmacは辞めてLinuxにしてしまいたい

この記事が気に入ったらサポートをしてみませんか?