1. 程式人生 > >windows 上用Sublime Text編譯objective-c

windows 上用Sublime Text編譯objective-c

本文我個人整理,逐步完善中。參考了很多大牛的知識,設計內容連結如下:

參考1:http://www.cnblogs.com/WhoJun/archive/2013/09/19/3330089.html

參考2:http://www.bubuko.com/infodetail-33011.html

配置環境所需資源下載:http://download.csdn.net/detail/u012370255/9424528

在windows 上編譯OC是很糾結的一件事,建議去買個蘋果本或者裝個黑蘋果。

實在不想買或者裝得話,本文章是給初學objective-c用的,如果要深入objective-c,請購買蘋果電腦或裝黑蘋果。

請看下面的步驟:

一、搭建objective-c環境

在windows上搭建objective-c開發環境,需要到GNUstep官網上下載幾個軟體(http://www.gnustep.org/experience/Windows.html)的相關安裝包。

以下是要下的軟體包:

GNUstep MSYS System  Required

GNUstep Core  Required

GNUstep Devel Optional

GNUstep Cairo

然後安裝到任意目錄~~不過要記得。對於後面步驟是很重要的。

在這裡推薦一個軟體,一個神級編輯器 Sublime Text (http://www.sublimetext.com/)

這個編輯器很強大,基本上能夠識別全世界程式語言,我用了之後基本上拋棄了一些(例如editPlus等)編輯器。

建議下載安裝,後面的編譯執行方面可以省去絕大部分的操作。

二、用Sublime Text搭建編譯環境

安裝Sublime Text後,開啟Sublime Text ,點選選單–> Tools - > Build System – > New Build System ...

 

然後會開啟一個文字,

將下面程式碼完全替換到裡面,如果之前裝在D:/根目錄的仁兄,就不用修改下面程式碼

,如果不是請將之前你裝的環境中的的目錄替換下d:/GNUstep/GNUstep/System/Library/Headers

替換成你安裝的目錄

{ "cmd": ["gcc" ,"-o" ,"${file_base_name}.exe" ,"${file_name}" ,"-I","d:/GNUstep/GNUstep/System/Library/Headers"  ,"-L" ,"d:/GNUstep/GNUstep/System/Library/Libraries" ,"-std=c99" ,"-lobjc","-lgnustep-base"  ,"-fconstant-string-class=NSConstantString"], //"file_regex":"^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir":"$file_path", "shell":true, "selector": ["source.m","source.mm"], "variants":    [ { "name":"Run", "working_dir":"${file_path}", "cmd": ["${file_base_name}.exe"] } ] }

然後直接儲存(儲存時建議將檔案命名為Objective-c)就行了~。

 

三、執行第一個hello world

先開啟剛剛設定的編譯檔案點選選單–> Tools - > Build System – > 剛剛取名的檔名

 

開啟會在後面出現一個小鉤鉤,那集證明你編譯是會執行這個編譯檔案。

先建立一個,以後程式碼的存放資料夾(一定要英文目錄,中文目錄不識別)

 

開啟sublime 編輯器,建立一個文字,我們可以寫一個簡單的hello world

 

然後ctrl+s儲存一下,字尾名該成 .m 檔案,(.m 檔案就是oc檔案的字尾名)

 

就可以寫oc的程式

 

這個編輯器,他的強大之處可以識別每個程式語言的字尾名,然後將他們的語法進行識別,增加對應的高亮效果,還有他的快捷鍵都相當迷人,快捷鍵就不說了。

寫完程式後進行一下儲存ctrl+s,然後ctrl+b進行編譯,ctrl+shift+b執行。

然後下放就會出現一個編譯和執行的資訊框。

 

這就說明我們搭建的平臺成功了。


四、常見問題

1、sublime text 2 除錯python時結果空白

如果ctrl+b編譯無結果,ctrl+shift+b執行也沒有結果,請參看下邊的解決方法,親測可用:

之前用的時候都一切正常,今天突然就出現了這個問題。按ctrl+b執行的時候結果只有空白,查了很多文章都只提到了中文路徑、系統路徑等等,沒有解決問題,直到看到了這篇文章:http://384444165.iteye.com/blog/1798107
文章中提到,Sublime Text 2  ctrl+b 如果出現執行為空白,按ctrl+`來顯示錯誤,如果錯誤是UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc0 in position 9: ordinal not in range(128),那麼就和我遇到的情況一樣了。
這個問題的起因是配置檔案目錄下Packages\Default目錄下的exec.py在編輯環境變數,但是環境變數中的字符集缺少了ascii字符集。
解決方法如下:
找到配置檔案目錄位置(在sublime text 2中點Preference -> Browse Packages)在Default目錄下找到exec.py,編輯;

找到以下兩行:
        for k, v in proc_env.iteritems():
            proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
更改為:
        for k, v in proc_env.iteritems():
            try:
                proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
            except UnicodeDecodeError:
                print("Encoding error")
                print("VARIABLE: ", k, " : ", v)
就能夠解決問題了。