Блог пользователя totsamyzed

Автор totsamyzed, история, 8 лет назад, По-английски

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! :)

  • Проголосовать: нравится
  • +85
  • Проголосовать: не нравится

»
8 лет назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится

great post!

a long long scroll of #include's bb

»
8 лет назад, # |
Rev. 2   Проголосовать: нравится +10 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +21 Проголосовать: не нравится

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 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Now I can die in peace

»
7 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

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

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

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

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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?

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Where to save the gpp.sublime-build file.

»
4 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

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