2016年11月30日 星期三

如何在 MAC OSX 上使用 SublimeText 編譯 C/C++ [可選擇以終端機開啟顯示結果並自動離開]

如何在 MAC OSX 上使用 SublimeText 編譯 C/C++ [可選擇以終端機開啟顯示結果並自動離開]


使用 Sublimetext 可以很大的提升程式碼編寫效率,對於小程式非常推薦使用他來編譯,小小缺點只是沒有像IDE那樣可以追蹤找細微的bug,個人推薦可以先用Sub寫好小程式再丟到IDE上執行,或者如果如果沒什麼BUG直接就全程使用Sub了。


1. 安裝 xcode

先從商店搜尋 xcode 並安裝,之後再重新開啟終端機並輸入 gcc -v 驗證安裝成功

下載檔案

下載能見的那兩個檔案就好,資料夾內另有用途
快速開啟 SublimeText 位置
檔案直接放置到 User 資料夾內

編譯並執行

貼上測試代碼
/*****************************************************************
Name : 
Date : 2017/02/27
By   : CharlotteHonG
Final: 2017/02/27
*****************************************************************/
#include <iostream>
using namespace std;
/*==============================================================*/
int main(int argc, char const *argv[]){
    cout << "Welcome=" << Welcome << endl;
    return 0;
}
/*==============================================================*/
要先存檔存成.cpp的副檔名 (如OSX_bulid.cpp)
要先存檔存成.cpp的副檔名 (如OSX_bulid.cpp)
要先存檔存成.cpp的副檔名 (如OSX_bulid.cpp)
按下 Cmd+Shift+B 選擇 OSX_C++ 即可看到結果
按下 Cmd+Shift+B 選擇 OSX_C++ -CMD 即可使用CMD開啟
如不更換,直接使用 Cmd+B 就可以看到結果 或 使用 F7 按鍵(Fn)

新版本的 gcc

上面那種方式取得的其實並不是 gcc 不過足以應付大多數的情況
如果你需要新版本的 gcc 可以從以下方法

利用第三方套件brew安裝

開啟終端機輸入(點三下全選)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然後再輸入
brew install gcc
提醒這個會裝超久(可能1hr以上),但版本新很多
推薦你找一天很有空的時候放著給他跑,他除了很大之外還會編譯兩次,第一次編譯然後再用編譯過的gcc再編一次gcc然後安裝,確保安全無慮。
執行的指令要帶版本號,如果不知道版本號可以打 gcc 然後按 tab 他會提示你妳的系統有什麼指令可以用,以現在為例是6.2版本是輸入以下指令。
gcc-6 -v
如想使用這個版本請下載 gcc-6 資料夾內的檔案


回報的問題

錯誤訊息
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[Finished in 0.3s with exit code 1]
[shell_cmd: gcc -Wall "" -o "/" -lm && osascript -e 'tell application "Terminal" to activate do script "\"/\" && read -p \"Press Enter to exit.\" && exit "']
[dir: /Applications/Sublime Text.app/Contents/MacOS]
[path: /usr/bin:/bin:/usr/sbin:/sbin]
沒存檔造成的,存檔後再按編譯即可

4 則留言:

  1. 按照上述方法之後,仍然出現以下錯誤
    Undefined symbols for architecture x86_64:
    "_main", referenced from:
    implicit entry/start for main executable
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    [Finished in 0.3s with exit code 1]
    [shell_cmd: gcc -Wall "" -o "/" -lm && osascript -e 'tell application "Terminal" to activate do script "\"/\" && read -p \"Press Enter to exit.\" && exit "']
    [dir: /Applications/Sublime Text.app/Contents/MacOS]
    [path: /usr/bin:/bin:/usr/sbin:/sbin]
    想請教版主該怎麼解決

    回覆刪除
    回覆
    1. 是否有存成 .cpp 檔案呢,沒有存檔只是打代碼上去會出問題的~

      刪除
    2. 測試一下出現同樣的錯誤,確實是沒存檔造成的

      刪除