2011-07-01 49 views
2

我將帶有C函數的.h/.cpp文件添加到我的Xcode項目中。我如何在Objective-C函數中調用C函數?如何將C/C++函數添加到Objective-C代碼中(iPhone相關)

當我在應用程序委託頭文件中包含C文件(#import「example.h」)時,它發生錯誤爆炸(可能是它將cpp文件當作objective-c處理),即使它編譯良好,包括/進口。

謝謝

編輯:重命名所有文件從m到mm修復了問題。不過,我在構建(ld:重複的符號)時遇到鏈接器錯誤...首先更好地研究。再次感謝所有。

+2

這通常是「正常工作」。如果您想分享它「爆炸」的錯誤消息,這將會很有幫助。 – asveikau

+0

您可能想要嘗試#include而不是#import。 – Perception

回答

7

如果您想在Objective-C模塊中使用C++,請將文件擴展名從.m更改爲.mm

2

C函數應該可以被調用而不做任何特殊的事情。 Objective-C是C的超集。如果頭文件包含C++的東西,那麼你需要將你的文件編譯爲Objective-C++而不是Objective-C。爲此,只需將文件擴展名從.m更改爲.mm即可。

6
  • 要使用在Objective-C純C只是 包括頁眉/源文件作爲 通常和呼叫的功能。 C 文件可以使用標準擴展名 .h.c。很多 庫已經用於這種方式 如libxml和sqlite。

  • 編寫C代碼,可以使用 目的-C(接入 FoundationFramework)它需要 被放置在.m文件。 A .m文件 可以包含所有C函數,就像 main.m與新的 項目一起生成的。

  • 要調用C++代碼的C++可以在 .cpp(或其他有效的擴展名),但 您的Objective-C的文件需要 擴展.mm調用它,而一旦 再次簡單地包含頭文件。 要使用Objective-C內部的 C++類,它將需要擴展名爲.mm

相關問題