Xcode(v12.5) で 'bits/stdc++.h' file not found が出たときの対処法

「さて、今日もいつも通り競プロするか。
とりあえずAtCoder Problemsを開いてXcodeを立ち上げて…」

"'bits/stdc++.h' file not found"
 
f:id:EugleNa:20210501153350p:plain

「え!?!?!?!?!?!??!?!!!
昨日までは何事もなかったじゃんか!何よ、もう知らない!」 

という経験を10回くらいしてきたので、備忘録として書いておきます。


正直インターネットで色々調べてみるとこれ関連の記事はいっぱい出てくるので、この記事の存在意義とはって感じはしますが、まぁそういう記事をまとめたものだと思ってください。

あとMacのバージョンとか環境によって対処法は違うと思うので、この記事で解決しなかったら「bits/stdc++.h file not found xcode」とかでググって他の記事も参照すると良いと思います。

環境

対処法

基本的な対処法は、

  1. bits/stdc++.hに該当するファイルをインターネットで見つける
  2. 自分のXcodeのヘッダファイルの参照先を見つける
  3. そこにbitsフォルダを作って、その中に1.のファイルを突っ込む

です。
1.は Xcodeでbits/stdc++.hをインクルードする - Qiita とかに書いてありますし、3.はこの通りやるだけなので、大事なのは2.です。

インターネット力を駆使して、自分のXcodeでヘッダファイルの参照先はどこなのかをひたすら探しましょう。

パターン1 (失敗)

Xcodeでbits/stdc++.hを使う方法などの記事を見ていると、bits/stdc++.hを

  • /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1

の位置に投入するという話がいくつか見受けられました。*1

ただ、自分はこれでもXcodeのエラーが治らなかったので、他の情報を調べました。

パターン2 (成功)

C++のヘッダの場所についてもう少しググってみると、ヘッダファイルは

  • /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include

の位置から読み込んでいる、という話も見つかりました。*2

試しにこちらにbits/stdc++.hを入れてみたところ、Xcodeのエラーが無事消えました。

脚注