當使用xcode編寫c++**時,難以避免要使用xcode/c++混合編譯。
如果你在xcode中編寫的工程中既有objective-c**,又有c++**,在沒有任何設定編譯器選項的預設情況下,你將會發現一下問題:
(1)編譯器報錯。莫名其妙的錯誤,如c++的關鍵字(如virtual, new, delete等)找不到,不能解析啊等問題
(2)以*.cpp結尾的純c++**編譯沒有問題,但是既有objective-c又有c++的檔案(*.mm)檔案就會報各種問題
在xcode中,通常,objective-c的字尾名位 .h/.m,c語言的字尾名為 .h/.c, c++的字尾名為.h/.cpp, 當乙個檔案中既有objective-c又有c++**時,字尾名為 .h/.mm。在編寫**時要寫對字尾名。其次,你可能發現,字尾名都寫對了,**也沒有任何問題,編輯器也沒有報錯,為什麼編譯的時候就報錯了呢?事實上,編譯器和編輯器的工作是區分開來的,編輯器就是你寫**的地方,僅檢查**語法是否有錯誤,你語法沒有錯誤當然不會報錯了。編譯器就是要編譯執行在編輯器中編寫好的**,如果編輯器僅支援objective-c,它怎麼可能編譯的了c++**呢?
要讓編譯器知道**中有c++**,要對編譯器做一些設定,先看圖:
1.單擊你的工程,選擇target下的目標檔案
2.在選項卡中選擇「build settings」選項
4.圖中綠色選中的選項「compile sources as」,意思是要把工程按照哪一種語言進行編譯,預設是第乙個「according to file type」,將其改成objective-c++即可。
懶得打字,資源來自網路:
快速定位 xcode 混編時的問題
場景 引入很多新的 檔案,編譯時 xcode 報告錯誤,但是又沒告訴我們是哪個檔案的錯誤。類似如下 這個時候無從下手的樣子。不用急,編譯是有個過程的,檢視一下編譯到哪個步驟出現這個錯誤即可。xcode 不熟悉的話,可能還不能馬上找到檢視所有的編譯日誌。檢視所有編譯日誌的方式 然後按日期檢視選擇最近的...
Xcode 常用設定
2 示例設定檔案 2 示例設定檔案 didfinishlaunchingwithoptions nsdictionary launchoptions 3 示例設定檔案 2 示例設定檔案 2 高於 6 版本 xcode 的模板路徑 2 xcode 空模板檔案 2 xcode sdk 各版本 2 在 x...
Xcode 設定輸出顏色
一 首先你需要安裝乙個xcode外掛程式 xcode colors 外掛程式github位址 外掛程式安裝好後,退出xcode,重新開啟,會彈出兩個選項,選擇load bundle.現在在你的 加上以下 執行,你會發現你的log已經有顏色了.define xcode colors escape 03...