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)
就能夠解決問題了。