標籤:http java 使用 os io 檔案 ar cti
龍芯8089D-Debian7 下搭建 Objective-C 編譯環境 目錄
- 安裝相關檔案
- 編譯參數說明
- 簡化命令列參數
- 實際編譯執行個體
簡單說明:Objective-C 的 C 檔案尾碼為 .m,標頭檔尾碼為 .h,例如我們在本教程中的常式就是 main.m。
安裝相關檔案
需要安裝這些包:gcc、g++、gobjc、gnustep、gnustep-devel、gnustep-gui-dev、libgnustep-base-dev。
安裝命令很簡單:
apt-get install gcc g++ gobjc gnustep gnustep-devel gnustep-gui-dev libgnustep-base-dev
安裝完畢之後就可以進行下一步了。
編譯參數說明
不同發行版的 Linux 下編譯 Objective-C 的命令參數略有不同,在 Debian 下需要這幾個參數:
`gnustep-config --objc-flags`-fconstant-string-class=NSConstantString-lobjc-lgnustep-base
另外需要指定標頭檔(include檔案)和庫檔案(lib檔案)的位置,在 Debian 下,它們的位置分別為 /usr/include/GNUstep/ 和 /usr/lib/GNUstep/,參數如下:
-I /usr/include/GNUstep/-L /usr/lib/GNUstep/
把上述參數綜合起來的編譯命令如下:
gcc `gnustep-config --objc-flags` -fconstant-string-class=NSConstantString -lobjc -lgnustep-base -I /usr/include/GNUstep/ -L /usr/lib/GNUstep/ -o main main.m
但是每次輸入這麼多參數就有些繁瑣了,接下來我們會把這一長串命令建立一個別名 alias
簡化命令列參數
建立別名的命令如下:
alias objcc=‘gcc `gnustep-config --objc-flags` -fconstant-string-class=NSConstantString -lobjc -lgnustep-base -I /usr/include/GNUstep/ -L /usr/lib/GNUstep/‘
要把這個命令儲存到系統的 ~/.bashrc 檔案中,很簡單,把這條命令拷貝到 .bashrc 中就可以了,然後執行一下:
source ~/.bashrc
以後編譯 Objective-C 檔案就可以使用別名 objcc 了,很簡單:
objcc -o main main.m
注意:在這條別名命令裡,分別使用了 單引號: ‘‘ 和 反引號: `` ,千萬不要混淆。
實際編譯執行個體
最後就是以一個實際的 Objective-C 程式例子來說明,下面是我們的常式 main.m 的內容:
#import <Foundation/Foundation.h>int main(int argc,const char * argv[]){ NSLog(@"hello world!"); return(0);}
把上述代碼儲存為 main.m,然後執行:
objcc -o main main.m
目前的目錄下就會產生一個名為 main 的可執行檔。
需要說明的是,這個可執行檔只能在 Debian 下運行,如果想在 Debian 下編譯出能在 OSX 下啟動並執行可執行檔,還需要一些額外的交叉編譯參數,這裡就不詳述了。