我通常使用Objective-C,有时我确实有多个代表多个类的文件。
有时程序运行,有时我收到此错误:
链接器命令失败,退出代码为 1(使用 -v 查看调用)
此错误的原因是什么?论坛中报告了不同的解决方案,但我想了解避免的原因是什么。
编译程序的一般思想包括单独编译每个文件,然后将编译的二进制文件链接在一起。当它说链接器命令失败时,表示链接二进制文件失败。链接器错误是什么取决于错误所说的内容。通常在垃圾内部有几个有用的行可以帮助您找出问题所在。我想到的几个是当一个函数被定义两次时,当一个函数被调用但未在任何地方声明时,或者当你导入一个包含 main 函数的库时(这意味着 main 被定义两次)等。
这背后有很多可能的原因。我列出了我经历过的一些。
- 您不小心将 .m 文件导入到 .m 文件中。
- 您链接的库具有相同的类名,这会导致冲突。
- 您链接的库是使用不同的设置(例如目标iOS版本,代码签名等)构建的。
- 您链接的库是为模拟器构建的,然后您在真实设备上使用它。
- 您忘了在 Localizable.string 中的声明末尾放置分号