2011-06-02 69 views
3

我正在開發一個需要以C++實現的第三方庫的項目。我成功地將庫添加到了我的xcode項目中,但問題是庫中的類包含名稱空間,當我嘗試通過名稱空間訪問方法時,XCode會生成一個錯誤:「utils undeclared」。 「utils」是我嘗試使用的命名空間。在目標中使用C++命名空間C

我的問題是有沒有在ObjectiveC中使用C++名稱空間的方法?

我用來調用該方法的代碼是: utils :: method();

我嘗試將我的ObjectiveC「.m」文件重命名爲「.mm」文件,但問題依然存在。

+0

關於第三方庫,您可能會使用靜態庫(而不是dylib)。 – 2011-06-30 11:01:04

+0

@Daniel他們爲什麼不喜歡第三方庫?他們通常使用。 – Nektarios 2011-06-30 12:58:33

+0

@Nektarios - 我聽說一些提交被拒絕的基礎上,第三方庫被使用。這是聽到說,所以我不知道它是真的,雖然 – 2011-06-30 13:14:38

回答

3

我們在Objective-C中使用C++庫,使用C++命名空間沒有問題。正如Mustafa所指出的,您需要將Objective-C文件擴展名更改爲.mm以使XCode將文件識別爲Objective-C++。然後你只需要#include(而不是#import)包含C++名稱空間聲明的C++頭文件 - 這與通常爲'普通'C++所做的一樣。

+0

哦,順便說一下,我使用的是XCode 3.2.6 - 也許你使用的是XCode 4,它的工作方式有所不同? – 2011-06-30 11:04:52