ld:未find文件:链接器命令失败,退出代码为1

在Xcode中构build项目时出现以下错误:

ld:找不到文件

/Users/MacBookPro/Library/Developer/Xcode/DerivedData/Social_Events-cfnteabiivwfdzcoulzznhmgobhy/Build/Products/Debug-iphoneos/Social_Events.app/Social_Events铿锵:错误:链接器命令失败,退出代码1(使用-v看到调用)

我坚持过去一小时这个错误..任何解决scheme? 代码在iOS 7xCode 5.0中运行良好 。 现在对于iOS8,它给了我这个错误。

使用框架:

  • CoreTelephony
  • Mapkit
  • Facebook.SDK v3.20
  • 基础
  • CoreGraphics中
  • UIKit框架

完整的错误:

<pre> Ld /Users/MacBookPro/Library/Developer/Xcode/DerivedData/Social_Events-cfnteabiivwfdzcoulzznhmgobhy/Build/Intermediates/Social_Events.build/Debug-iphoneos/Social_EventsTests.build/Objects-normal/arm64/Social_EventsTests normal arm64 cd /Users/MacBookPro/Desktop/Social_Events/Social_Events/Social_Events export IPHONEOS_DEPLOYMENT_TARGET=7.1 export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" </pre> >/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -bundle -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -L/Users/MacBookPro/Library/Developer/Xcode/DerivedData/Social_Events-cfnteabiivwfdzcoulzznhmgobhy/Build/Products/Debug-iphoneos -F/Users/MacBookPro/Library/Developer/Xcode/DerivedData/Social_Events-cfnteabiivwfdzcoulzznhmgobhy/Build/Products/Debug-iphoneos -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/Developer/Library/Frameworks -filelist /Users/MacBookPro/Library/Developer/Xcode/DerivedData/Social_Events-cfnteabiivwfdzcoulzznhmgobhy/Build/Intermediates/Social_Events.build/Debug-iphoneos/Social_EventsTests.build/Objects-normal/arm64/Social_EventsTests.LinkFileList -dead_strip -bundle_loader /Users/MacBookPro/Library/Developer/Xcode/DerivedData/Social_Events-cfnteabiivwfdzcoulzznhmgobhy/Build/Products/Debug-iphoneos/Social_Events.app/Social_Events -framework XCTest -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=7.1 -framework XCTest -framework UIKit -framework Foundation -Xlinker -dependency_info -Xlinker /Users/MacBookPro/Library/Developer/Xcode/DerivedData/Social_Events-cfnteabiivwfdzcoulzznhmgobhy/Build/Intermediates/Social_Events.build/Debug-iphoneos/Social_EventsTests.build/Objects-normal/arm64/Social_EventsTests_dependency_info.dat -o /Users/MacBookPro/Library/Developer/Xcode/DerivedData/Social_Events-cfnteabiivwfdzcoulzznhmgobhy/Build/Intermediates/Social_Events.build/Debug-iphoneos/Social_EventsTests.build/Objects-normal/arm64/Social_EventsTests >ld: file not found: /Users/MacBookPro/Library/Developer/Xcode/DerivedData/Social_Events-cfnteabiivwfdzcoulzznhmgobhy/Build/Products/Debug-iphoneos/Social_Events.app/Social_Events clang: error: linker command failed with exit code 1 (use -v to see invocation) >(null): File not found: /Users/MacBookPro/Library/Developer/Xcode/DerivedData/Social_Events-cfnteabiivwfdzcoulzznhmgobhy/Build/Products/Debug-iphoneos/Social_Events.app/Social_Events 

你可能会得到这个错误,因为你重命名了你的项目, Tests不能被发现了。 这很容易解决:

解决它在Xcode是这样的:

  1. 从项目导航器中select您的项目。
  2. 在目标下select[Your project's Tests]
  3. General选项卡下,从下拉列表中更改Host Application
  4. build立并运行。

截图

这个问题发生在我身上,因为我重命名了我的项目,testing无法再find它了。

问题是重命名产品后,它的testing目标仍然在寻找以前的应用程序名称。

select您的testing目标,然后在“生成设置”中修改TestHost值,以下列方式对应您的新产品名称:

 $(BUILT_PRODUCTS_DIR)/YourNewProductName.app/YourNewProductName 

我已经通过重命名产品来解决这个问题。

在应用程序的目标中selectBuild Settings。

在“打包”选项下,您必须将产品重命名为错误中显示的名称。

它解决了我的问题,代码开始编译。 我的testing用例也在执行。

我有一个类似的问题 – 这是因为我正在使用Cocoapods并打开.xcodeproj文件,而不是.xcworkspace文件… doh!

你有没有尝试清理你的派生数据?

 Xcode5->Organizer->Projects->Select your project->Delete the derived data. 

尝试删除“Social_EventsTests”目标。

  1. 转到构build名为PuzzleGameTests的testing的设置。
  2. 转到testing设置,写入$(BUILT_PRODUCTS_DIR)/PuzzleGame.app/PuzzleGame
  3. 清理和build立

注意:PuzzleGame是我的项目(产品名称)的新名称。 RandomNumber是我的项目(产品名称)的旧名称。

我在添加FBSDKCoreKit.framework遇到了类似的问题,解决办法是:

  1. 如果frameworks已经添加,然后删除选项remove all references
  2. frameworks直接拖放到要放入项目的group中。
  3. 词不要重新拖拽或改变其位置

注意:当我们在xcode中拖放框架时,会自动在<yourproject> -> Targets -> <yourproject> -> Search Paths -> Framework Search Paths 。 一旦我们重新定位框架, Framework Search Paths变空了,并导致linker error , framework not found

当我将unit testing目标添加到我现有的项目中时遇到了类似的问题。 有各种各样的错误。 必须经过一些循环才能最终运行。 在下面列出

  1. 确保您的条目在testing目标的标题searchpath下与主项目文件夹中的标题searchpath相匹配

  2. 如果你使用的是豆荚,你可能会遇到一些错误,例如“没有findFirebase的模块”。 为此只需将以下代码行添加到您的pod文件并运行pod安装

    目标“YourProjectNameTests”做

    inheritance! :search_paths

    #Pod用于testing

    结束

  3. 如果你也得到桥接头文件没有find错误,像我一样,确保你添加相同的testing目标在生成Swift编译代码

  4. 你也将不得不遵循@Jose Llausas提到的步骤

我有“框架未find”的问题。 这是重命名我的项目后。

转到项目设置,select目标( 不是项目)。 在常规选项卡中,find“链接的框架和库”,并删除旧的名称。