我剛剛將我的項目從Xcode 3轉換爲4並更新到最新的SDK。該項目運行正常,當我在XCode中3打開它,但也有錯誤,當我在XCode中運行4XCode更新 - iOS鏈接錯誤
我得到以下鏈接錯誤:
Undefined symbols for architecture armv7:
"_objc_memmove_collectable", referenced from:
__ZN9cPlaylistaSERKS_ in MediaItemManager.o
ld: symbol(s) not found for architecture armv7
從我所瞭解memmove_collectable它與周圍的垃圾收集記憶有關。然而在我的項目設置設置爲:
Obj-C Garbage Collection - Unsupported
我什至不知道有iOS的垃圾收集。任何人都知道我可能會做錯什麼?
有些幫助解除名稱也很棒。我的MediaItemManager是一個C++類,它調用new/delete和memset/memcpy。但是,他們都不在名爲播放列表的功能中。 MediaItemManager中包含單詞Playlist。 cPlaylist不會調用memset/memcpy函數。
cPlaylist* AllSongsPlaylist() { return mSongList; }
pPlaylistVec Playlists() { return &mPlaylists; }
cPlaylist* PlaylistByIndex(uint32 idx);
cPlaylist* PlaylistByName(NSString* name);
...
std::vector<cPlaylist> mPlaylists;
typedef std::vector<cPlaylist>* pPlaylistVec;
編輯: 這似乎與ARMv7的ARMv6的還是要發生。這可能是XCode的安裝問題,我不確定XCode的安裝應該如何。我確實需要添加這個符號鏈接才能在安裝後獲得XCode。 iPhone Codesign object file format invalid or unsuitable
我並非如此當然可以。 。您可以將多個Xcode版本並排安裝在單獨的目錄中,只要您始終安裝較新的版本即可。 (你不能安裝版本X,然後安裝X-1;這會使事情變得糟糕。)安裝程序允許你選擇一個備用位置。「新的」基於App Store的安裝程序將移動/開發人員放在一邊(將其重命名爲/Developer-x.y.z,x.y.z是之前安裝的版本號),並重新安裝到/ Developer中。 –
你是對的馬克,這確實最終工作。安裝中必須發生奇怪的事情。 – TurqMage