2013-09-25 24 views
5

我已升級到Xcode 5,並且能夠使用現有設置建立我的項目。將iOS部署目標更改爲iOS 7.0時,Xcode 5出現C++鏈接錯誤

將Base SDK更新到7.0不會導致任何問題。

但是,當我將iOS部署目標更改爲iOS 7.0時,我開始獲取標準C++符號的鏈接錯誤。例如:

Undefined symbols for architecture armv7 std::string::empty() const", referenced from... 

我曾嘗試:

  • 明確鏈接標準C++庫
  • 更改 「C++標準庫」 中的Xcode 5.設置都嘗試的libstdC++,的libC++和 「編譯器的默認」

如果部署目標設置爲iOS 7.0,那麼它只是找不到C++符號,而如果它設置爲iOS 6.1,則只會找到C++符號。

+0

您是否清潔和重建? – trojanfoe

+0

是的,乾淨和重建,以及清潔生成文件夾以及... – Silohoutte

+0

嘗試'建立設置 - >編譯源爲 - > Objective-C++' – yngccc

回答

5

事實證明,如果XCode在項目中找不到任何C++文件,那麼它假定不需要libstd ++。所以,你必須手動添加一個C++文件到項目中(一個空的.mm文件就足夠了)。

所有學分轉到此answer在此Stackoverflow thread

+0

將虛擬.mm文件添加到項目中。這解決了這個問題,但是如果有人知道更好的解決方法,那很容易聽到。 – Silohoutte

+0

完全同意,這仍然是一種解決方法。我想最好的解決方案是讓XCode工作。如果您找到更好的解決方案,請在此分享。 – Guven

+0

我們也遇到了這個問題,發現只有.mm文件是不夠的。我們必須告訴Xcode(版本5)也要與標準C++庫鏈接。 –