I was trying to figure out how to include bits/stdc++.h on macos since it uses clang, So once i found the solution i thought of creating a clear video about how to do it.
Video Link : here
# | User | Rating |
---|---|---|
1 | tourist | 3993 |
2 | jiangly | 3743 |
3 | orzdevinwang | 3707 |
4 | Radewoosh | 3627 |
5 | jqdai0815 | 3620 |
6 | Benq | 3564 |
7 | Kevin114514 | 3443 |
8 | ksun48 | 3434 |
9 | Rewinding | 3397 |
10 | Um_nik | 3396 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 155 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
10 | nor | 152 |
I was trying to figure out how to include bits/stdc++.h on macos since it uses clang, So once i found the solution i thought of creating a clear video about how to do it.
Video Link : here
Name |
---|
For me this only works in Xcode. It still doesn't compile in CLion or in the terminal.
CLion solution
I think that isn't enough. With that you still are unable to use
tree_policy
. The best solution is installinggcc
withhomebrew
.Tbh, it's not worth using
bits/stdc++.h
. If you type out only the headers you need (with an autocomplete for standard headers maybe), you'll lose some seconds, but on the other hand, you'll save seconds of compilation time because the compiler won't have to go through all the headers on your system and figure out which declarations you need and which ones can be optimised out. When you need to debug and aren't slow at debugging, waiting 2 more seconds for each recompilation can be quite a waste.I use a precompiled
bits/stdc++.h
header and my compilation time is around 0.6 secondsHow can i get a precompiled bits/stdc++.h header?
Not sure if this will work on Windows but it's worth a try:
stdc++.h
which is referenced by the compiler.You should get a file called
stdc++.pch
right next tostdc++.h
. Continue usingg++
as usual. Next time you compile a file which includesbits/stdc++.h
you should see a substantial change in compilation time (2-4 times faster)Why is this down-voted? It's intended way to use bits/stdc++, that's what it was created for.
this video help me to solve the same problem, you can change clang to g++ if you like
Thanks!
Great thanks!
First open finder. Then press shift+cmd+G.
Then copy this /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ and paste it in the box. then click Go.
When you're in v1 folder create a new folder called bits after that create a new file called stdc++.h
Then go to this page: https://github.com/tekfyl/bits-stdc-.h-for-mac/blob/master/stdc%2B%2B.h copy the content and paste it in stdc++.h file and save it.
And that's it.
bits/stdc++.h disappears everytime I update Xcode, is there any way to fix this?
Well, I find it necessary to install GCC. With GCC there is also pbds, _Find_first, etc... It’s frustrating for me to be unable to use GCC features on my Mac.
the way i mentioned above, allows us to us pbds... and all gcc libreries, you can change clang to gcc on that way or you can alse compile using g++8
I use mac and the following includes do the trick almost all the time (atleast till problem D)
iostream
vector
map
stack
queue
set
algorithm
cassert
...
I was face a same problem with it. after search couple of hour to fix the ‘bits/stdc++.h’ file not found error
Write a simple tutorial how to fix in macOs and windows fix in ‘bits/stdc++.h’ file not found here is the tutorial link. hope this will help
TUTORIAL
If you have more suggestions please tell me I will add
Thanks, man!
For Xcode 13 or later do this :
In finder, press Cmd+Shift+G
Paste : /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1
Create a new folder "bits" here
Download the file or create "stc++.h" and paste the content from: https://gist.github.com/frankchen0130/9ac562b55fa7e03689bca30d0e52b0e5
For those who don't still have a problem including the file on macOS
I hope this helps.
I arrived at this myself and then saw ur comment.
I also had to remove these two lines from my
stdc++.h
file, namely,#include <cstdalign>
and#include <cuchar>
and it worked fine.MacOS -> 11.6
For me, I only need to remove
#include <cstdalign>
. (MacOS 12.4)Step 1: Install linux.
Marinush
Even this video didn't helped me out in order to solve the problem, I am still getting the same error. Should I also have to check other things to work this out?
Run g++-12 instead of regular g++. Regular g++ is clang which doesnot have bits/stdc++. g++-12.
The below one is the g++ compiler you need to use(below one is without clang).
Note, g++-12 automatically has bits/stdc++ so you just need to switch the compiler only. No need to copy extra files.
Hi, Can you please tell me which compiler is faster and best among all. I am also using clang in mac.
you can use VS code or Sublime text
I know this is an old post, but I kept finding it when I search this problem, so I wanted to share my 2024 solutions. To fix the missing
<bits/stdc++.h>
file we have these options for each of the two compilers in MacOS:Xcode Clang
You can install Clang without the Xcode app from the App Store with:
xcode-select install
. To install the stdc++.h header file, you need to create thebits
folder inside/usr/local/include/
, then you need to define_GLIBCXX_HOSTED
inside the stdc++.h for it to work, then append the rest of stdc++.h from the gcc mirror repo on GitHub. The commands are as follows:the downsides are that you may need to manually remove these headers:
<cstdalign>
,<cuchar>
,<memory_resources>
in order for clang to work, and thattree_policy
may still not be usableGNU gcc
You can easily download gcc from homebrew, then you need to remove the g++ to clang simlink in
/usr/local/bin
, then create a simlink for the gnu g++ compiler. The commands are as follows:Reference: this Spanish post from a Mexican competitive programing club