2011-04-29 33 views
1

我有一個開源的C++項目。我的目標是用額外的代碼擴展這個項目。這段代碼是Objective-C代碼(因爲我不知道C++)。我已經找到了一種從C++類中調用Objective-C函數的方法(Calling Objective-C method from C++ method?) 但是,當我嘗試使用XCode編譯我的C++代碼時,XCode凍結(在構建階段沒有錯誤)。我的問題是,如果甚至可以從僅用C++編寫的項目中調用Objective-C類。我可以從C++程序中調用Objective-C類嗎?

有沒有人有過這方面的經驗?

回答

0

Xcode的凍結是一個明確的錯誤,它應該編譯或給出錯誤。嘗試在項目設置中切換到另一個編譯器。

只要C++代碼在objective-C++模式下編譯,它應該可以工作。如果文件擴展名是.mm,或者如果你明確告訴編譯器,AFAIK它只能在Objective-C++模式下編譯。 gcc和clang的命令行開關是-ObjC++

1

您當然可以整合這兩個langs。

如果您的程序(+取決於)很大,那麼Xcode可能因爲多種原因而受阻。

個人而言,我一直無法像大型項目中的Xc3那樣有效地使用Xc4。我花了太多時間等待它變得快速響應。我已經在Xc4中加載了大型(meta)項目,並讓它在空閒的8核心機器上解析並創建幾個小時(字面意義上的「派生數據」),只是在幾個小時內結束這個過程。再次,它取決於項目的大小,以及它們的依賴關係。你的項目不太可能太複雜。

權衡是Xc4增加了一些重要的特徵(例如,高級解析,編輯期間的編譯)。有時候在Xc3中啓動並最大限度地減少功能(例如代碼感覺索引)是件好事,直到它爲您打造。

編譯不應該引起凍結(但給它一些時間來恢復),如果您還沒有指定正確的語言...... Xcode中通有可能不堪重負,或者您有混合的語言 - 沒有合適的編譯器標誌。

如果它真的很大,Xcode可以花費大量時間解析源代碼,創建派生數據。

如果它仍然存在,那麼發佈更多信息可能是個好主意。

相關問題