天天看點

clang terminal編譯OC代碼

Xcode 中代碼編譯器clang

想要看看clang的一片文章嗎?clang here you are

簡單介紹利用terminal 實作clang編譯器編譯OC代碼的兩個小方法:

一、 運作編譯一段程式的方法:

1. 建立一個工程(HelloWord.m)為例

a. 打開terminal,cd 到某directory,找到擱置代碼檔案的目錄des_dir,(或者可以$ mkdir des_dir  | cd des_dir建立一個并進去)

b. 在des_dir中 vim HelloWord.m, 建立好檔案後,輸入文下的程式代碼。wq一下回到des_dir 下,cat HelloWord确定一下是否代碼正确

當然你可以使用OS X + 滑鼠等慣用操作完成找到目标目錄,建立檔案夾,建立.m 文本,copyCode到文本中,一氣呵成。

#import <Foundation/Foundation.h>

int main(int argc,const char * argv[])

{

    @autoreleasepool

    {

        NSLog(@"Hello, OC!");

    }

    return 0;

}

2. terminal保留在目前目錄下,使用clang指令編譯代碼檔案

a.  $ pwd  檢視目前目錄位置 (/Users/xw.long/Desktop/XWPro/des_dir)  $ls 檢視目錄檔案(HelloWord.m)

b. $ clang -fobjc-arc -framework Foundation HelloWord.m -o HelloWord

 • $符号是終端指令提示符,不是需要輸入的内容

 • -fobjc-arc表示編譯器需要支援ARC特性

 • -framework Foundation表示引用Foundation架構

 • HelloWord.m為需要進行編譯的源代碼檔案

 • -o HelloWord表示輸出的可執行檔案的檔案名

3. 第二步孫俪完成後,生成可執行檔案,既可以運作可執行檔案了(HelloWord)

a. 輸入的指令如下:             $ ./HelloWord

b.得到輸出結果:Hello,OC !

二、 Clang 指令将OC 轉化為cpp(C++)源碼: 1. 慘遭 一 中的方法建立一個oc源碼檔案.m 輸入内容如下:

int main(){

    void (^blk)(void) = ^{printf("block\n");};

    blk();

    return 0;

}

2. 控制台指令是: clang -rewrite-objc 源代碼檔案名。

如這個地方應該輸入: clang -rewrite-objc main.m,經過裝換後會生成一個main.cpp 的源碼檔案

3.檢視源碼檔案,

方法有很多,可以直接open main.cpp  ,或者cat main.cpp 在terminal中翻頁浏覽

會發現,簡單的一段OC 塊代碼 轉譯為C++代碼後 很冗長的一個篇章呀。

)