在xCode 8.0更新之后,架构arm64的重复符号

更新我的xCode后,我得到重复的符号错误。 (find代码)有人也得到这个吗? 怎么能解决?

我试图从“其他链接器标志”部分删除-ObjC链接器标志,导入.m而不是.h后,检查“无共同块”编译器设置为否,我去了Targets -> Build Phases -> Compile来源和没有重复,尝试所有没有结果。

任何其他的想法?

重复的符号_space在:/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/SearchView.o/ Users / a / Library / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / FollowingUserViewController.o重复的符号_space位于:/ Users / a / Library /Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/SearchView.o/ Users / a / Library / Developer / Xcode / DerivedData / SMAP -bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / ChatViewController.o重复符号_space位于:/ Users / a / Library / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / SearchView.o / Users / a / Library / Developer / Xcode / DerivedD ata / SMAP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / MessagesNotifications.o重复符号_space位于:/ Users / a / Library / Developer / Xcode / DerivedData / SMAP -bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects -normal / arm64 / SearchView.o / Users / a / Library / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP .build / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / AppDelegate.o重复的符号_space位于:/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/ Debug-iphoneos / SMAP.build / Objects-normal / arm64 / SearchView.o /Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/ Objects / normal / arm64 / PicturesCell.o复制符号_space在:/ Users / a / Library / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermed iates / SMAP.build / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / SearchView.o /Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug- iphoneos / SMAP.build / Objects-normal / arm64 / SMAPMainViewController.o重复中的符号_space:/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP .build / Objects-normal / arm64 / SearchView.o /Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64 /CheckUserTypeViewController.o重复中的符号_space:/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/SearchView。 o /Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/S maptersNearYou.o复制符号_space在:/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/SearchView.o /Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/PostSlider.o重复符号_space位于:/ Users / a / Library / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects -normal / arm64 / SearchView.o / Users / a / Library / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / UserSettings.o重复的符号_space位于:/ Users / a / Library / Developer / Xcode / DerivedData / SMAP -bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects -normal / arm64 / SearchView.o / Users / a / Library / Developer / Xcode / DerivedData / SM AP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / EventSliderCell.o重复的符号_space位于:/ Users / a / Library / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq /Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/SearchView.o/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build /Debug-iphoneos/SMAP.build/Objects-normal/arm64/UserProfile.o重复中的符号_space:/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug- iphoneos / SMAP.build / Objects-normal / arm64 / SearchView.o /Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects- normal / arm64 / EventCell.o重复的符号_space在:/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.buil d / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / SearchView.o /Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP。 build / Objects-normal / arm64 / NewsFeed.o重复符号_textViewMaxHeight in:/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects -normal / arm64 / EventSliderCell.o /Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/ExpressSliderCell.o重复符号_textViewStandardHeight:/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/EventSliderCell.o / Users / A /库/开发商/ Xcode中/ DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq /编译/中间体/ SMAP.build /debugging-的iPhoneOS / SMAP.build /目标正常/ arm64 / E xpressSliderCell.o在以下位置复制符号_textViewStep:/Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/EventSliderCell.o /Users/a/Library/Developer/Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/ExpressSliderCell.o duplicate symbol _space in:/ Users / a / Library / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects -normal / arm64 / SearchView.o / Users / a / Library / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / FollowerUserViewController.o重复的符号_space位于:/ Users / a / Library / Developer / Xcode / DerivedData / SMAP -bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects -normal / arm64 / SearchView.o / Users / a / Lib rary / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq / Build / Intermediates / SMAP.build / Debug-iphoneos / SMAP.build / Objects-normal / arm64 / FilterAlertView.o重复的符号_space位于:/ Users / a / Library / Developer /Xcode/DerivedData/SMAP-bshetjpaaresiudzvoubtutnfvuq/Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/SearchView.o/ Users / a / Library / Developer / Xcode / DerivedData / SMAP-bshetjpaaresiudzvoubtutnfvuq /Build/Intermediates/SMAP.build/Debug-iphoneos/SMAP.build/Objects-normal/arm64/UserNotificationsViewController.o ld:20个重复的符号架构arm64 clang:错误:链接器命令失败,退出代码1(使用-v请参阅调用)

下面补丁为我工作.. 🙂

build议使用警告标志代码并将GCC_NO_COMMON_BLOCKS设置为YES。

把它设回NO解决了问题! 在这里输入图像说明

我终于find了! 您可以在将生成 可testing性设置为“ 生成”设置中的“ 否”之后编译

更改设置

从Xcode 8发行说明 :

启用“启用testing性”构build设置后,Xcode 8会将-export_dynamic传递给链接器以保留所有全局符号以进行testing。 这有效地覆盖了死代码剥离,这可以暴露链接失败的引用未定义的符号的未使用的函数。 如有必要,禁用可testing性将允许链接继续进行,无需更改源代码。 (27684883)

当然,最好的做法是:a)删除导致链接器问题的未使用的代码,或b)实际修复链接器问题。

我知道大多数人正在通过“无共同块”或“死代码”设置来解决这个问题,但实际上这是解决真正问题的方法。 在我的情况下,我使用的是一个Pod文件,它添加了我已经链接过的相同的库,所以基本上我已经在我的Pod文件中已经编译好的存档特征链接库中删除了重复的文件。

我发现我有两个不同的类,在.m文件中声明的常量。 这是允许之前,这个新版本的xCode,但现在看起来像重复,即使这两个类不相互导入,并没有任何一个与另一个。

const NSInteger space = 10; < – 名称“space”在应用程序中应该是唯一的,即使是在.m文件中

我不想改变任何这些设置,因为没有人真正知道这些可能有什么副作用。 所以我想全局search这个variables名,把导致一个类中的冲突的名字换成了variable_Classname。

这解决了我的问题,而不改变任何设置

从错误信息,它必须是在您的项目中的一些文件重复。 比如FilterAlertView,UserNotificationsViewController,SearchView,ExpressSliderCell等等。 你可以在你的错误信息中看到这个。

对于我的情况, Xcode 9 ,我们在一些头文件中声明常量

Constants.h

 static NSString *const kSomeString = @"SomeString"; 

因此在多个.m文件中导入Constants.h会导致重复的符号

解:

Constants.h

 extern NSString * const kSomeString; 

Constants.m

 NSString *const kSomeString = @"SomeString"; 

解决scheme是在这个职位。 你没有达到这个目的,但至less现在解决了这个问题,至less在我的情况下,我没有任何与该版本的问题。