ld:找不到文件:链接器命令失败,退出代码为1

时间:2014-10-30 23:29:40

标签: ios objective-c xcode linker

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

  

ld:找不到文件

     

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

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

使用框架:

  • CoreTelephony
  • Mapkit
  • Facebook.SDK v3.20
  • 粉底
  • CoreGraphics中
  • UIKit Framework

完全错误:

<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

11 个答案:

答案 0 :(得分:155)

您可能会收到此错误,因为您重命名了项目并且无法再找到Tests。这很容易解决:

在Xcode中解决它:

  1. 从项目导航器中选择您的项目。
  2. 选择目标
  3. 下的[Your project's Tests]
  4. General标签下,从下拉列表中更改Host Application
  5. 构建并运行。
  6. Screenshot

    这个问题发生在我身上,因为我重命名了我的项目,测试再也找不到了。

答案 1 :(得分:29)

问题是在重命名产品后,其测试目标仍在寻找以前的应用名称。

选择您的测试目标,然后在构建设置中修改TestHost值,以便按以下方式对应您的新产品名称:

$(BUILT_PRODUCTS_DIR)/YourNewProductName.app/YourNewProductName

答案 2 :(得分:13)

我通过重命名产品解决了这个问题。

在应用程序的目标中,选择Build Settings。

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

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

答案 3 :(得分:11)

我遇到了类似的问题 - 因为我使用的是Cocoapods而且打开了.xcodeproj文件而不是.xcworkspace文件... doh!

答案 4 :(得分:4)

您是否尝试清理派生数据?

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

答案 5 :(得分:2)

尝试删除“Social_EventsTests”目标。

答案 6 :(得分:2)

  1. 转到名为PuzzleGameTests的测试的构建设置。
  2. 转到测试设置,写$(BUILT_PRODUCTS_DIR)/ PugameGame.app/PuzzleGame
  3. 清理并构建
  4. 注意:PuzzleGame是我项目的新名称(产品名称)。 RandomNumber是我项目的旧名称(产品名称)。

答案 7 :(得分:2)

我遇到了“未找到框架”的问题。这是在重命名我的项目之后。

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

答案 8 :(得分:0)

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

  1. 如果已添加frameworks,请使用选项remove all references将其删除。
  2. 拖动&amp;将frameworks直接放在您希望将其放入项目的group中。
  3. 不要在文字之后重新拖动或更改其位置
  4. 注意:当我们拖动&amp;在xcode中删除框架,它会自动在<yourproject> -> Targets -> <yourproject> -> Search Paths -> Framework Search Paths下设置框架搜索路径。 一旦我们重新定位框架,Framework Search Paths将变为空,并导致linker error , framework not found

答案 9 :(得分:0)

当我将单元测试目标添加到现有项目时出现类似的问题。有各种各样的错误。不得不通过一些循环来让它最终运行。将它们列在

下面
  1. 确保您在测试目标的标题搜索路径下的条目与主项目文件夹中的标题搜索路径匹配

  2. 如果您使用的是pod,则可能会出现一些错误,例如“No Module found Firebase&#39;”。为此,只需将以下代码行添加到您的pod文件并运行pod install

    目标&#39; YourProjectNameTests&#39;做

    继承! :search_paths

    #Pods for testing

  3. 如果您还发现未找到桥接头文件错误,请确保您在Swift编译代码一般

  4. 下的构建设置中为测试目标添加相同内容
  5. 此外,您还必须按照@Jose Llausas提到的步骤

答案 10 :(得分:0)

当我向项目中添加框架时,我遇到了类似的问题。

我已经解决了该问题,方法是删除框架,然后通过将框架文件拖放到项目frameworks文件夹中并选择“如果需要复制项目”选项,再次将框架添加到项目中。

enter image description here