When submitting a solution in C++, please select either C++14 (GCC 6-32) or C++17 (GCC 7-32) as your compiler. ×

totsamyzed's blog

By totsamyzed, history, 8 years ago, In English

Hi all,

Recently I had a talk with ko_osaga and he told me that unfortunately he can't use #include <bits/stdc++.h> because his operating system is OS X. I was surprised to know that because I'm using this header on OS X without any troubles.
When I explained him how I manage to do that he told me I should compose a topic about this because it will help many people :)
So I will try to cover two things in my post:
a) How to compile #include <bits/stdc++.h> in Sublime text?
b) How to compile C++11 features like lambdas, auto, etc. in Sublime text?
Let's get started.

#include<bits/stdc++.h> usage
3 easy steps.
1) Install Xcode
2) Download stdc++.h from my GitHub. The file is not mine of course, I just googled it and commented out including cstdalign library because it just wouldn't compile on my mac (I wasn't interested enough to figure out why).
3) Now you must simply put stdc++.h into /Applications/Xcode.app/Contents/Developer/Platforms/ChosenTargetPlatform/Developer/SDKs/ChosenMacOSSDK/usr/include/bits
Done!

C++11 features usage
Here you will need a custom build system for Sublime text. It's easy to create!
3 easy steps again.
1) Download gpp.sublime-build from my GitHub.
2) Go to Sublime, then select Tools->Build System->New Build System. This is the place where you should paste gpp.sublime-build. Don't forget to save the file.
3) Relaunch Sublime, from now on your new build system will be available at Tools->Build System.
Done!

I hope someone will find this helpful. Thanks for your attention! :)

  • Vote: I like it
  • +85
  • Vote: I do not like it

| Write comment?
»
8 years ago, # |
  Vote: I like it +18 Vote: I do not like it

great post!

a long long scroll of #include's bb

»
8 years ago, # |
Rev. 2   Vote: I like it +10 Vote: I do not like it

Thanks for sharing!

I found myself struggling with the first problem some time ago. Here's a hacky approach I used to solve it:

  • Make a directory called "bits" and put a "stdc++.h" file in it. You can put the directory wherever you want on your Mac.
  • Fill the header with whatever includes you might need.
  • Add an "-I<path to the "bits" folder>" flag while calling "clang++" command.

The good thing I find about this approach is that you don't need to install XCode and you don't need to mess with its internal directories.

I personally prefer command-line interface to Sublime build framework, but I believe you should be able to add this flag anyway. :)

Please refer my dotfiles for more details: link.

»
8 years ago, # |
  Vote: I like it +21 Vote: I do not like it

Alternatively, you can install gcc via homebrew and compile with that. The benefit of this is that you get the same compiler as the judge.

»
8 years ago, # |
Rev. 2   Vote: I like it +3 Vote: I do not like it

Also you can add -D YOUR_VAR after g++ (.sublime-build) to use

#ifdef YOUR_VAR
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
#endif

or something else

e.g "shell_cmd": "g++ -D DEBUG \"${file}\"...

»
8 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Now I can die in peace

»
7 years ago, # |
  Vote: I like it +1 Vote: I do not like it

Just install gcc6 and you will be able to use "bits/stdc++" and "ext/pb_ds". //I am using OS X

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    I have installed gcc, gcc6 but still not able to use ext/pbds using sublime text3.

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

I followed your steps and bits/stdc++.h does work on Xcode but it doesn't work on Sublime...What may I've done wrong?

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Where to save the gpp.sublime-build file.

»
4 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

Is there any way to add time limit in compilation so that it automatically stops when it infinite loop occur ?