16

尝试编译我的项目时出现此错误,想知道是否有人知道如何修复它?

我已经阅读了有关此类链接器错误的 SO 和互联网上其他地方的所有答案。我已经尝试了很多解决方案,包括非常流行的 --delete xcode 中的派生数据,完全退出 xcode,在命令行中再次删除它,然后重新启动 xcode - 仍然没有。这是在我尝试将一个设备连接到我的计算机(我已经从组织者中删除)之后开始的,这是一个朋友尝试在他的 iPad 上运行它。我已经束手无策了,不能再在这上面浪费时间了。关于如何解决它的任何想法?

Products 文件夹中的应用文件是红色的。

编辑:更多信息:实际的应用程序没有被构建并放在 Library/Developer/{app}/Build/Product 文件夹中。我尝试重新连接设备并从苹果网站手动添加配置文件,然后在选择设备时尝试构建->存档应用程序。我仍然得到错误。我已经尝试在 Schemes 中从调试更改为发布并执行所有这些操作,但我仍然收到错误消息。我尝试卸载 xcode 并重新安装它,从计算机上完全删除应用程序(包括派生数据),然后从 Git 中拉回来,我得到了同样的错误。

ld /Users/mischabuckler/Library/Developer/Xcode/DerivedData/TRx-clxlusutxvcrlkddtqwtoxibcmhc/Build/Products/Debug-iphonesimulator/UnitTests.octest/UnitTests normal i386 cd /Users/mischabuckler/Desktop/Git/TRx setenv IPHONEOS_DEPLOYMENT_TARGET 6.1 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 -bundle -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/开发者/SDKs/iPhoneSimulator6.1。sdk -L/Users/mischabuckler/Library/Developer/Xcode/DerivedData/TRx-clxlusutxvcrlkddtqwtoxibcmhc/Build/Products/Debug-iphonesimulator -F/Users/mischabuckler/Library/Developer/Xcode/DerivedData/TRx-clxlusutxvcrlkddtqwtoxibcmhc/Build/Products/ Debug-iphonesimulator -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/库/框架 -filelist /Users/mischabuckler/Library/Developer/Xcode/DerivedData/TRx-clxlusutxvcrlkddtqwtoxibcmhc/Build/Intermediates/TRx.build/Debug-iphonesimulator/UnitTests.build/Objects-normal/i386/UnitTests.LinkFileList -bundle_loader /用户/mischabuckler/库/开发人员/Xcode/DerivedData/TRx-clxlusutxvcrlkddtqwtoxibcmhc/Build/Products/Debug-iphonesimulator/TRx。app/TRx -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6.1 -framework SenTestingKit -framework UIKit -framework Foundation -o /Users/mischabuckler/库/开发者/Xcode/DerivedData/TRx-clxlusutxvcrlkddtqwtoxibcmhc/Build/Products/Debug-iphonesimulator/UnitTests.octest/UnitTests

ld:找不到文件:/Users/mischabuckler/Library/Developer/Xcode/DerivedData/TRx-clxlusutxvcrlkddtqwtoxibcmhc/Build/Products/Debug-iphonesimulator/TRx.app/TRx clang:错误:链接器命令失败,退出代码为 1(使用 - v 查看调用)

4

7 回答 7

47

当您重命名主目标并且测试目标尚未更新时会发生这种情况。检查测试目标中的构建设置并确保路径指向新文件夹。例如,如果您将目标 SuperAwesome 重命名为 Super,则您的测试目标在 SuperAwesome.app/ 文件夹中的文件应该更新为 Super.app/

于 2014-10-13T05:06:37.550 回答
7

好的,虽然很难发现,但您在上面发布的消息不是构建您的应用程序,而是您的单元测试。它还在输出窗口的顶部提到了它,但人们并不期望它会改变。

您可能已经重命名了您的方案,并且这样做的单元测试指向您的真实构建或其他东西。您的应用程序实际上可能构建得很好,但是您的单元测试目标失败了。

如果问题是您一直在重命名目标,那么在您的 UnitTest 方案中,转到构建设置并搜索 TEST,这应该会显示 TEST HOST 的设置。确保这些值指向您希望调用测试应用程序的任何内容,而不是主可执行文件。

对我来说,这只是在我的测试目标的 TEST_HOST 的调试和发布设置上附加“测试”的情况。

现在这一切都为我构建了,尽管令人讨厌的是它实际上正在构建两个目标 - 至少它们都可以编译。

于 2014-11-27T16:01:36.830 回答
5

因此,对于发现此问题并感到沮丧的其他人,我最终所做的是删除我的应用程序和单元测试的目标依赖项,然后构建一次应用程序,然后重新添加它们并再次构建应用程序,它运行良好.

于 2013-04-20T07:03:28.817 回答
4

尝试复制目标,并使用目标的副本运行。

于 2015-01-12T08:22:53.147 回答
2

我讨厌 Mach-o 链接器错误,它令人沮丧,无论如何,我通过创建一个新方案遇到了同样的问题,它对我来说就像魔术一样。 添加新方案

于 2015-09-03T21:10:53.463 回答
1

转到项目 --> 构建设置 --> 测试 --> 测试主机 删除测试主机中的所有路径,然后进行干净的构建。

于 2015-08-11T08:54:48.840 回答
1

尝试运行 Clean 然后构建/运行项目

在此处输入图像描述

于 2016-09-19T22:16:34.663 回答