【问题标题】:How to solve Mach-O-Linker error in ios7 & Xcode 5.0.1如何解决 ios7 和 Xcode 5.0.1 中的 Mach-O-Linker 错误
【发布时间】:2014-02-26 05:55:26
【问题描述】:

我无法为模拟器编译我的项目。
我收到 Apple Mach-O-Linker 错误。我不明白如何解决这些问题。我使用的是 xcode 5.0.1。
请帮助我。
提前致谢。

Ld /Users/murthych/Library/Developer/Xcode/DerivedData/ClassifiedDetails-elseirogpshyhmffphsiejgydphd/Build/Products/Debug-iphonesimulator/ClassifiedDetails.app/ClassifiedDetails normal i386
    cd /Users/murthych/Desktop/ClassifiedDetails
    setenv IPHONEOS_DEPLOYMENT_TARGET 7.0
    setenv 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 i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -L/Users/murthych/Library/Developer/Xcode/DerivedData/ClassifiedDetails-elseirogpshyhmffphsiejgydphd/Build/Products/Debug-iphonesimulator -F/Users/murthych/Library/Developer/Xcode/DerivedData/ClassifiedDetails-elseirogpshyhmffphsiejgydphd/Build/Products/Debug-iphonesimulator -F/Applications/Xcode.app/Contents/Developer/Library/Frameworks -filelist /Users/murthych/Library/Developer/Xcode/DerivedData/ClassifiedDetails-elseirogpshyhmffphsiejgydphd/Build/Intermediates/ClassifiedDetails.build/Debug-iphonesimulator/ClassifiedDetails.build/Objects-normal/i386/ClassifiedDetails.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.0 -framework XCTest -framework CoreGraphics -framework UIKit -framework Foundation -Xlinker -dependency_info -Xlinker /Users/murthych/Library/Developer/Xcode/DerivedData/ClassifiedDetails-elseirogpshyhmffphsiejgydphd/Build/Intermediates/ClassifiedDetails.build/Debug-iphonesimulator/ClassifiedDetails.build/Objects-normal/i386/ClassifiedDetails_dependency_info.dat -o /Users/murthych/Library/Developer/Xcode/DerivedData/ClassifiedDetails-elseirogpshyhmffphsiejgydphd/Build/Products/Debug-iphonesimulator/ClassifiedDetails.app/ClassifiedDetails

Mach-O-Linker 错误消息

building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/XCTest.framework/‌​XCTest' for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation) "

【问题讨论】:

  • 不运行项目可以编译吗?
  • 你有没有只支持iOS设备的静态库?您能否确保包含所有必需的框架?
  • 请任何人帮帮我。我被这个击中了............
  • 我认为您没有粘贴整个消息。最后应该有几行说“Mach-O-Linker 错误:错误描述将​​在此处”。再次构建并发布实际的链接器错误,以便我们查看失败的原因。
  • 我收到 Mach-O-Linker 错误消息“为 iOS 模拟器构建,但链接到为 MacOSX 文件构建的 dylib '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/XCTest.架构 i386 clang 的 framework/XCTest':错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)“

标签: ios iphone xcode


【解决方案1】:

XCTest.framework 只需链接到项目中的单元测试目标。不应将其添加到 UI 应用程序目标。

我发现在添加XCTest.framework 时,Xcode 添加了额外的\Framework Search Paths

\"$(SDKROOT)/Developer/Library/Frameworks\"
\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"
$(DEVELOPER_FRAMEWORKS_DIR)

这会导致链接器问题,

ld: building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/XCTest.framework/XCTest' for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

要在 XCode 5.1 中解决此问题,请转到主 ProjectWindow,Tab Build Settings -> Section Search Path -> Framework Search Paths 和编辑以删除出现路径的\

希望有帮助!

【讨论】:

  • 哎呀!这已经让我过去了。我最近开始从事一个旧项目,它又发生了!我知道修复很简单,但忘记了它是什么。你是天赐良机!!
【解决方案2】:

删除测试目标并创建一个新目标然后复制测试可以解决此问题。

如果您对此投反对票,请提供正当理由,因为此提示对我有用。

【讨论】:

    【解决方案3】:

    我建议您使用 xcode 5.02 稳定版,然后希望这些 Mac-O 链接器错误将得到解决。在安装 xcode 5.02 之前我也面临同样的问题。

    【讨论】:

    • 链接器错误有一百种不同的原因,与 XCode 的版本无关。虽然 xCode 的版本很可能是链接器错误的根源,但还有很多其他合理的解释应该首先排除。也就是说,Irfan 是对的,无论如何你都应该升级到 5.0.2。
    • 这是不正确的。我在最新的 Xcode 5.0.2 中也遇到了这个问题。检查我的答案以获得解决方案。
    • @Amar 导致 Mac-O 链接器错误的原因不止一个,还有很多其他原因。在我的情况下,它通过更新 xcode 来解决,而在您的情况下,它已按照您在回答中提到的那样解决。而且我仍然确信还有许多其他原因会导致 Mac-O 链接器错误,就像上面提到的 ryan cumley 一样。
    • @Irfan building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/XCTest.framework/‌​XCTest' for architecture i386 是一个原因。正如您的回答所建议的那样,升级到 Xcode 5.0.2 并没有帮助。我仍然可以重现它。
    • @Amar 是的,我同意您的回答,但愿您弄清楚这个特定 Mac-O Linker 错误的确切问题,但我只是举 Mac-O Liker 错误的一般示例。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多