Swift:Apple Mach-O链接器错误(文件太小,不适用于架构x86_64)

时间:2015-05-28 04:28:53

标签: ios xcode swift

我正在创建一个从网站获取信息的天气应用程序。我最后一次编码(昨晚)一切都很好,我能够编译并运行模拟器,没有任何错误。就在今天,当我启动同一个项目而没有改变任何东西时,我得到了“Apple Mach-O Linker Error”。你能帮忙解决这个问题吗?

以下是错误的详细信息:

Ld /Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Products/Debug-iphonesimulator/Haze\ Meter.app/Haze\ Meter normal x86_64
    cd "/Users/Allister/Documents/XCODE/Haze Meter"
    export IPHONEOS_DEPLOYMENT_TARGET=8.3
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.3.sdk -L/Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Products/Debug-iphonesimulator -F/Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Products/Debug-iphonesimulator -filelist /Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Intermediates/Haze\ Meter.build/Debug-iphonesimulator/Haze\ Meter.build/Objects-normal/x86_64/Haze\ Meter.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -objc_abi_version -Xlinker 2 -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -Xlinker -add_ast_path -Xlinker /Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Intermediates/Haze\ Meter.build/Debug-iphonesimulator/Haze\ Meter.build/Objects-normal/x86_64/Haze_Meter.swiftmodule -mios-simulator-version-min=8.3 -Xlinker -dependency_info -Xlinker /Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Intermediates/Haze\ Meter.build/Debug-iphonesimulator/Haze\ Meter.build/Objects-normal/x86_64/Haze\ Meter_dependency_info.dat -o /Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Products/Debug-iphonesimulator/Haze\ Meter.app/Haze\ Meter

在底部:

ld: file too small (length=0) file '/Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Intermediates/Haze Meter.build/Debug-iphonesimulator/Haze Meter.build/Objects-normal/x86_64/ViewController.o' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已经在StackOverflow上检查了其他“Apple Mach-O Linker Error”,但他们似乎与我有一个不同的“ld”,尽管是相同的“clang”。

6 个答案:

答案 0 :(得分:89)

尝试完全重建/清理。以前的版本可能会异常中止,导致{{1}}文件损坏或零大小。

清理:在Xcode" Product"菜单,选择"清洁" (快捷方式:Cmd + Shift + K)

重建:在Xcode" Product"菜单,选择" Build" (快捷方式:Cmd + B)

如果它不起作用:在Xcode" Product"菜单,按住Option键,然后选择"清洁构建文件夹"

来自HERE的参考。

答案 1 :(得分:5)

您(通常)不必清理,只需打开它提到的文件并重新保存它,以便xcode认为它已更改。然后你可以做一个增量构建(更快)。

答案 2 :(得分:1)

我遇到了同样的问题。事实证明,我在外部添加的一个框架无法找到。为了解决这个问题,我删除了对它的引用,重新下载它,然后重新添加到我的项目中。

答案 3 :(得分:0)

对我来说,这是因为故事板中存在空'@'

希望这可以帮助有需要的人。

答案 4 :(得分:0)

在我的情况下。我在可可足类访问的框架中收到此错误。我通过运行cmd'pod cache clean'然后清除并重建项目来解决此错误。

答案 5 :(得分:0)

我在AppCode中遇到了同样的问题。无效的缓存/重新启动没有帮助。通过手动删除Library/Caches/AppCodeXXXX/DerivedData文件夹解决了此问题。