大部分OJ都支持bits.stdc++.h頭文件,也就是說刷題的時(shí)候廊镜,不需要include那么多頭文件牙肝,就#include <bits.stdc++.h>
就能包括幾乎所有刷題要用的頭文件了。但是Mac上的自帶的gcc是不支持這個頭文件的嗤朴,所以就需要自行安裝配椭。
1. 刪除/usr/bin中的:g++, gcc, c++, cpp, cc,也有可能里面沒有雹姊,反正就是如果有就刪
$ cd /usr/bin
$ sudo rm g++ gcc c++ cpp cc
如果出現(xiàn)operation not permitted可以看看這篇博客:mac的權(quán)限問題股缸,其中要注意的就是可能跟作者的OS版本不同,我重啟按command + R之后吱雏,看到的是一個問我要重裝系統(tǒng)還是恢復(fù)備份的界面敦姻,然后這些不要管,在上面隨便點(diǎn)點(diǎn)就能看到啟動終端的按鈕(我寫完了再去看看歧杏,再更新吧)
2. 安裝brew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
P.S:我之前安裝過了得滤,但是我忘了怎么裝了來著盒犹,如果安裝失敗的話麻煩讀者再百度一下吧,這一步很簡單的沮协。在這里提供一個連接:brew安裝
3. 安裝gcc
在終端輸入brew search gcc
可以看到
我們就安裝gcc7好了(之前裝的是6聘殖,卸載掉復(fù)現(xiàn)寫的教程)
終端輸入:
brew install gcc@7
等一會兒就安裝好了
4. 軟連接到/usr/bin
先確認(rèn)一下gcc的安裝目錄吧奸腺,我知道gcc安裝在/usr/local/Cellar里血久,但具體的版本號呢還是要cd進(jìn)去看看氧吐。
cd usr/bin/Cellar
ls
看gcc的版本(當(dāng)然是7啦筑舅,但是可以看到目錄名字是gcc@7)cd gcc@7
cd 7.4.0
cd bin
pwd
反正就是要進(jìn)去gcc的那個bin目錄翠拣,然后pwd打印出路徑,
然后把這個路徑下的g++, gcc, cpp, c++都做軟連接鏈接到/usr/bin里去
我輸入的命令如下邦尊,可能gcc的版本會有更新使得路徑不同蝉揍,所以下面的命令不要復(fù)制畦娄,而要通過上面的步驟得到gcc中bin的絕對路徑熙卡。而且每個文件也不同,比如這里是g++-7滑燃,鏈接之后的文件是g++表窘,
$ sudo ln -s /usr/local/Cellar/gcc\@7/7.4.0/bin/c++-7 /usr/bin/c++
$ sudo ln -s /usr/local/Cellar/gcc\@7/7.4.0/bin/cpp-7 /usr/bin/cpp
$ sudo ln -s /usr/local/Cellar/gcc\@7/7.4.0/bin/g++-7 /usr/bin/g++
$ sudo ln -s /usr/local/Cellar/gcc\@7/7.4.0/bin/gcc-7 /usr/bin/gcc
5. 設(shè)置環(huán)境變量
vim ~/.bash_profile
加上這行export PATH=$PATH:/usr/local/Cellar/gcc\@7/7.4.0/bin
上面這行代碼不用復(fù)制粘貼,路徑不一定跟教程里的一樣瘤袖,看自己的
然后再
source ~/.bash_profile
至此捂敌,gcc的安裝就算完成了既琴,可以寫個cpp文件甫恩,然后g++ xxx.cpp試試,我們接著配置sublime text
6. 配置sublime
如圖
復(fù)制粘貼下面的代碼
{
"cmd": ["g++", "${file}" , "-o", "${file_path}/${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && open -a Terminal.app '${file_path}/${file_base_name}'"],
"variants":
[
{
"name": "Run",
"cmd": ["bash", "-c", "g++ '${file}' -std=c++11 -stdlib=libc++ -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
}
]
}
command + S
保存為
C++.sublime-build
然后再選c++為built system就好啦
圖里的是C++(2),只是文件命名的問題滞磺,不要介意击困。
command + B運(yùn)行,大工告成阅茶!
折騰了一天了蹦浦,都是一邊百度一邊折騰hhh撞蜂。教程到此為止了蝌诡。
附刷題模板
<snippet>
<content>
<![CDATA[
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <unordered_map>
#include <string>
#include <cstring>
#include <algorithm>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <ctime>
#include <vector>
#include <fstream>
#include <list>
#include <iomanip>
#include <numeric>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define ms(s) memset(s, 0, sizeof(s))
const int inf = 0x3f3f3f3f;
#define LOCAL
int main(int argc, char * argv[])
{
return 0;
}]]>
</content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>acm</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>source.c++</scope>
</snippet>
使用方法:打開sublime text →Tools → Developer → new snippet → 上邊的代碼粘貼進(jìn)去→command + s存為acm.sublime-snippet
浦旱。
然后在一個cpp文件中輸入acm,會出現(xiàn)一個補(bǔ)全提示宣蠕,按回車,就會自動生成模板代碼了。