奇怪的 Xcode 链接器错误
Posted
技术标签:
【中文标题】奇怪的 Xcode 链接器错误【英文标题】:Weird Xcode linker error 【发布时间】:2014-05-07 01:04:28 【问题描述】:我收到了这个 Xcode 错误:
ld: warning: directory not found for option '-L/Volumes/Macintosh HD2/Users/dgd/Dropbox/Websites/iCalTools.com/CalendarFilter/iCal'
ld: warning: directory not found for option '-LFilter/TestFlightSDK3.0.0'
ld: library not found for -lTestFlight
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我的代码在这个路径:
/Volumes/Macintosh HD2/Users/dgd/Dropbox/Websites/iCalTools.com/CalendarFilter/iCal Filter
并且由于某种原因,Xcode 似乎在第二个空白处阻塞,并且错误地将路径拆分为 TestFlight。
真正奇怪的部分是,如果我删除了 TestFlight API 和它的库搜索路径,然后将其重新添加进去,它编译并运行良好,即使库搜索路径在该空间似乎仍然被破坏:
在我关闭项目并重新打开它之前,一切都会继续工作。然后我必须再次删除并重新读取 TestFlight。
(还有一点需要注意,我试图从目录中删除空白,但在尝试重命名它时遇到了更多 Xcode 和 git 问题,因此我放弃并恢复了原样。在此过程中的某个时刻,我最终得到了Xcode 在“Macintosh HD2”中的空白处出现同样的问题)
编辑
我向 TestFlight 支持发送了有关此问题的电子邮件,并收到了以下回复,该回复解决了该问题。除了从磁盘中删除文件(我在磁盘上确实有几个旧的 TestFlight 副本,但不在项目中)和可能选中 Copy Items 框之外,我之前已经尝试过大多数这些步骤。我仍然不知道问题到底是什么,并认为这是一种解决方法,所以我没有添加这个作为答案。也许有人能够解释这里发生了什么。
抱歉给您添麻烦了。
如果库搜索路径存在问题,通常会出现这些错误。请删除“Filter/TestFlightSDK3.0.0”行,然后执行以下操作:
打开 Xcode 并选择项目中的所有 TestFlight SDK 文件(libTestFlight.a、TestFlight.h、TestFlight+AsyncLogging.h、TestFlight+ManualSessions.h) 通过选择移动到垃圾箱选项删除所有选定的文件 在 Finder 中打开您的项目(右键单击主项目文件夹并选择在 Finder 中显示) 仔细检查 TestFlight SDK 文件并删除所有找到的文件。 再次下载TestFlight SDK v3并解压压缩包 将 SDK 文件夹的内容拖放到您的项目中。在添加文件提示符处,勾选默认值(复制项目、创建组、添加目标) 清理构建并尝试创建新的 IPA
【问题讨论】:
【参考方案1】:尝试使用引号分隔路径中的项目。
$(inherited) "$(SRCROOT)" "$(SRCROOT)/../Dependencies/Frameworks"/** "$(SRCROOT)/MobileAppTracking-ios" "$(SYSTEM_APPS_DIR)/Reveal.app/Contents/SharedSupport/iOS-Libraries"
我有一个项目,我们的框架搜索路径类似于上面。这可能有助于有空格的路径。如果一切都失败了,您可以尝试转义空格或将库移动到不包含空格的路径吗?
【讨论】:
【参考方案2】:对于 Xcode 中包含空格的路径,只需在路径周围加上引号(对于所有采用路径的设置都相同:包含、搜索路径等。
"/Volumes/Mac HD/Users/The Count of Tuscany/Source/My Stuff/"
【讨论】:
【参考方案3】:我遇到了同样类型的问题。
只需转到构建设置。在提供的搜索框中键入“搜索路径”。然后查看第三方库的参考资料。删除值。
现在转到显示程序文件的项目文件菜单。然后删除您有链接器错误的第三方库。请务必备份这些,因为您将在下一步中需要它们。
现在将您在其他文件夹或备份文件夹中的相同库拖到您的 xcode 项目中。
现在构建。
我通过上述步骤解决了同样的问题。当您将 xcode 项目从一个用户/ mac 移动到另一个用户/mac 时,通常会发生这种情况。否则,如果根据参考文献缺少库。
【讨论】:
以上是关于奇怪的 Xcode 链接器错误的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 7'CrashReporter 不包含位码'链接器错误