1
Noob構建問題。刪除預處理代碼時複製符號
當我改變這個;
#define NOTIFICATION_PLAYBACK_STATE_CHANGED @"SC_NOTIFICATION_PLAYBACK_STATE_CHANGED"
to this;
NSString * const NOTIFICATION_PLAYBACK_STATE_CHANGED = @"SC_NOTIFICATION_PLAYBACK_STATE_CHANGED";
我得到這樣的:752次重複的
ld: 752 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
樣品:
duplicate symbol _NOTIFICATION_PLAYBACK_STATE_CHANGED in:
/Users/myname/Library/Developer/Xcode/DerivedData/MyApp-hazegevzmypmbtbnalpiwebrhaea/Build/Intermediates/MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/armv7/SCRemoteRecordManager.o
/Users/myname/Library/Developer/Xcode/DerivedData/MyApp-hazegevzmypmbtbnalpiwebrhaea/Build/Intermediates/MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/armv7/SCRegisterAcceptTermsViewController.o
duplicate symbol _NOTIFICATION_PLAYBACK_STATE_CHANGED in:
/Users/myname/Library/Developer/Xcode/DerivedData/MyApp-hazegevzmypmbtbnalpiwebrhaea/Build/Intermediates/MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/armv7/SCRemoteRecordManager.o
/Users/myname/Library/Developer/Xcode/DerivedData/MyApp-hazegevzmypmbtbnalpiwebrhaea/Build/Intermediates/MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/armv7/SCStreamingVideoViewController.o
(A爲這個特殊的重複符號搜索返回該類自己的.h和外面什麼都沒有。 m文件)。
代碼中有許多其他地方,我已經用這個#define替換了在構建期間沒有反對的常數。
有人可以猜測這裏發生了什麼(或者告訴我需要發佈什麼信息才能進行猜測)?
通過代碼來代替#defines來代替它們被用來創建常量(讓調試/釋放defs未被觸及的東西)做一個愚蠢的事情,即我應該以不同的方式做這件事(如果有的話)?
非常簡明扼要的解釋,非常感謝。 – HenryRootTwo 2014-11-25 19:57:18
我很高興你覺得它有幫助! – 2014-11-25 20:06:23