iOS clang編譯OC成C++文件

由于想了解OC通過(guò)runtime機(jī)制轉(zhuǎn)成的C++代碼是什么樣子的,在進(jìn)入項(xiàng)目目錄中,執(zhí)行cc -rewrite-objc ViewController.m時(shí)如下錯(cuò)

In file included from ViewController.m:9:
**./ViewController.h:9:9: ****fatal error: ****'UIKit/UIKit.h' file not found**
#import <UIKit/UIKit.h>
**        ^**
1 error generated.

遂在Google上找到各種類似的解決辦法,但都沒(méi)有對(duì)癥下藥,無(wú)論嘗試那種辦法都報(bào)'UIKit/UIKit.h' file not found的錯(cuò)。

但最終還是摸索出解決辦法,就是使用:

clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk xxxxx.m

當(dāng)然,不能每次都輸入這么長(zhǎng)的路徑和命令,可通過(guò)alias簡(jiǎn)化工作,步驟:

進(jìn)入終端,鍵入命令 vim

~/.bash_profile

在vim界面輸入i進(jìn)入編輯編輯狀態(tài)并且鍵入:

alias rewriteoc='clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk'

鍵入完畢,點(diǎn)esc退出編輯狀態(tài),再鍵入:wq退出vim并保存,執(zhí)行source ~/.bash_profile<-這句一定要執(zhí)行,執(zhí)行才會(huì)生效

圖例:


然后進(jìn)入項(xiàng)目目錄,找到你想要編譯的文件,執(zhí)行rewriteoc xxx.m即可成功,圖例


最后感受下這濃濃的情誼:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲(chóng)de夢(mèng)閱讀 100,830評(píng)論 9 468
  • linux資料總章2.1 1.0寫(xiě)的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,352評(píng)論 2 33
  • 1. vim 選擇文本,刪除,復(fù)制,粘貼 文本的選擇,對(duì)于編輯器來(lái)說(shuō),是很基本的東西,也經(jīng)常被用到,總結(jié)如下:v ...
    路癡千行閱讀 3,418評(píng)論 0 0
  • 公司新員工學(xué)習(xí)有用到,Vim官網(wǎng)的手冊(cè)又太大而全,而網(wǎng)上各方資料要么不全面,要么不夠基礎(chǔ)。在網(wǎng)上搜集各方資料,按照...
    甲魚(yú)閱讀 163,709評(píng)論 43 685
  • 這些天一一都很自律:早上5:45準(zhǔn)時(shí)起床洗漱,6:20送孩子上學(xué),步行半小時(shí)去食堂吃豐盛且低脂的早餐,中午回家吃適...
    清風(fēng)如水閱讀 222評(píng)論 0 1

友情鏈接更多精彩內(nèi)容