如何解决此 "linker command failed with exit code 1 (use -v to see invocation)" 错误
How do I resolve this "linker command failed with exit code 1 (use -v to see invocation)" error
我已经有一段时间没有接触这个特定的应用程序了,但同时通过各种版本升级了 Xcode 到当前的 6.3。今天尝试构建它,构建失败,链接器命令失败,退出代码 1 错误...
duplicate symbol _timer in:
/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
duplicate symbol _timer in:
/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: 2 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我在 Whosebug 和其他地方发现了许多关于链接器错误的参考资料,但到目前为止 none 已经帮助我弄清楚如何解决我的特定问题。
错误说我有两次 重复符号 _timer,但是在项目中查找 _timer 没有找到任何东西。
我确实在所有提到的 ViewController 中声明并使用了 NSTimer *timer,但没有 _timer。
如有任何帮助,我们将不胜感激。
约翰
方法名称有一个由编译器添加的前导下划线前缀,因此链接器中的 _timer
指的是程序中的 timer
。
此外,链接器消息说它在文件 OrthoViewController.o 和 NewMechanicDialogViewController.o 中,因此变量 timer
在这两个文件中都有各自的源文件 *.m 并且可能在文件级别。
timer
也在 MechanicsViewController.o.
然后创建实例变量,或者如果有某些原因需要将它们放在文件范围内,则创建它们 static
.
如果您需要更多帮助,请添加声明变量 timer
的代码。
看起来 MechanicsViewController.o 和 NewMechanicDialogViewController.o 之间可能存在冲突,也许你只想在你的程序中使用其中一个。
最后,阅读错误消息并尝试理解它们以及它们如何应用于您的代码。
我用这段代码造成了这个错误。
protocol var somethingDelegate: class
{
var position: CGPoint { get set }
}
这是 SKScene 子类要遵循的协议。 SKScene 在它的超类中已经有一个位置 属性。我删除了这段代码,它是固定的。因此,问题可能出在重复/冲突的属性上。
我已经有一段时间没有接触这个特定的应用程序了,但同时通过各种版本升级了 Xcode 到当前的 6.3。今天尝试构建它,构建失败,链接器命令失败,退出代码 1 错误...
duplicate symbol _timer in: /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
duplicate symbol _timer in: /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: 2 duplicate symbols for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)
我在 Whosebug 和其他地方发现了许多关于链接器错误的参考资料,但到目前为止 none 已经帮助我弄清楚如何解决我的特定问题。
错误说我有两次 重复符号 _timer,但是在项目中查找 _timer 没有找到任何东西。
我确实在所有提到的 ViewController 中声明并使用了 NSTimer *timer,但没有 _timer。
如有任何帮助,我们将不胜感激。
约翰
方法名称有一个由编译器添加的前导下划线前缀,因此链接器中的 _timer
指的是程序中的 timer
。
此外,链接器消息说它在文件 OrthoViewController.o 和 NewMechanicDialogViewController.o 中,因此变量 timer
在这两个文件中都有各自的源文件 *.m 并且可能在文件级别。
timer
也在 MechanicsViewController.o.
然后创建实例变量,或者如果有某些原因需要将它们放在文件范围内,则创建它们 static
.
如果您需要更多帮助,请添加声明变量 timer
的代码。
看起来 MechanicsViewController.o 和 NewMechanicDialogViewController.o 之间可能存在冲突,也许你只想在你的程序中使用其中一个。
最后,阅读错误消息并尝试理解它们以及它们如何应用于您的代码。
我用这段代码造成了这个错误。
protocol var somethingDelegate: class
{
var position: CGPoint { get set }
}
这是 SKScene 子类要遵循的协议。 SKScene 在它的超类中已经有一个位置 属性。我删除了这段代码,它是固定的。因此,问题可能出在重复/冲突的属性上。