如何通过退出代码1(使用-v查看调用)错误解决此“链接器命令失败”错误

时间:2015-04-22 04:08:13

标签: xcode linker-errors

我有一段时间没有碰过这个特定的应用程序,但是通过各种版本同时升级了Xcode,直到当前的6.3。试图在今天构建它并且构建失败,链接器命令失败,退出代码1错误...

  

重复符号_timer:       /Users/johnbdh2/Library/Developer/Xcode/DerivedData/OrthoPro-cqfociuqwyhagkfczafenrdkthpw/Build/Intermediates/OrthoPro.build/Debug-iphoneos/OrthoPro.build/Objects-normal/armv7/OrthoViewController.o       /Users/johnbdh2/Library/Developer/Xcode/DerivedData/OrthoPro-cqfociuqwyhagkfczafenrdkthpw/Build/Intermediates/OrthoPro.build/Debug-iphoneos/OrthoPro.build/Objects-normal/armv7/NewMechanicDialogViewController.o

     

重复符号_timer:       /Users/johnbdh2/Library/Developer/Xcode/DerivedData/OrthoPro-cqfociuqwyhagkfczafenrdkthpw/Build/Intermediates/OrthoPro.build/Debug-iphoneos/OrthoPro.build/Objects-normal/armv7/OrthoViewController.o       /Users/johnbdh2/Library/Developer/Xcode/DerivedData/OrthoPro-cqfociuqwyhagkfczafenrdkthpw/Build/Intermediates/OrthoPro.build/Debug-iphoneos/OrthoPro.build/Objects-normal/armv7/MechanicsViewController.o

     

ld:架构armv7的2个重复符号   clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我在StackOverflow和其他地方都发现了很多关于链接器错误的引用,但到目前为止,没有人帮我弄清楚如何修复我的特定问题。

错误说我有两次重复符号_timer ,但在_timer的项目中执行查找时找不到任何内容。

我确实在所有提到的ViewControllers中声明并使用了NSTimer *定时器,但没有_timer。

任何帮助都会被贬低。

约翰

2 个答案:

答案 0 :(得分:2)

方法名称由编译器添加了前导下划线前缀,因此链接器中的_timer引用程序中的timer

此外,链接器消息显示它位于文件OrthoViewController.o和NewMechanicDialogViewController.o中,因此变量timer在这两个文件中都包含相应的源文件* .m,并且可能位于文件级别。

timer也在MechanicsViewController.o。

要么设置实例变量,要么在文件范围内有一些理由让它们static

如果您需要更多帮助,请添加声明变量timer的代码。

看起来在MechanicsViewController.o和NewMechanicDialogViewController.o之间可能存在冲突,也许yu只需要你的程序中的其中一个。

最后,阅读错误消息并尝试理解它们以及它们如何应用于您的代码。

答案 1 :(得分:0)

我使用此代码创建了此错误。

protocol var somethingDelegate: class
{
    var position: CGPoint { get set }
}

这是SKScene子类的协议。 SKScene已经在其超级类别中拥有一个位置属性。我删除了这段代码并修复了。因此问题可能是重复/冲突的属性。