【问题标题】:Apple Mach-O Linker Error when compiling for device为设备编译时出现 Apple Mach-O 链接器错误
【发布时间】:2011-07-16 18:51:53
【问题描述】:

我刚刚升级到 xcode 4.0,我无法再部署到 iPhone,我得到一个 Apple Mach-O 链接器错误,但它仍然适用于模拟器。

    Ld /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel normal armv7
    cd /Users/yveswheeler/iParcel
    setenv IPHONEOS_DEPLOYMENT_TARGET 3.2
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -L/Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos -F/Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos -filelist /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel.LinkFileList -dead_strip -all_load -ObjC -lxml2 -miphoneos-version-min=3.2 -framework UIKit -framework CoreGraphics -framework QuartzCore /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Core.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Network.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Style.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UI.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UICommon.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UINavigator.a -framework AddressBook -lz.1.2.3 -framework Foundation -framework CFNetwork -framework MobileCoreServices -framework SystemConfiguration -framework MessageUI -framework AudioToolbox -o /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel

arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Core.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Network.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Style.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UI.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UICommon.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UINavigator.a: No such file or directory
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 failed with exit code 1

【问题讨论】:

  • 什么鬼?! same 错误消息有这么多不同 问题。苹果干得好!
  • "ERROR: An Error has occurred" 会更有帮助:))
  • 查看链接器在错误前吐出的警告;它可能会导致更好/更具体的解决方案。

标签: objective-c iphone xcode xcode4


【解决方案1】:

我必须确保我的框架是使用选定的模拟器构建的,以便使用模拟器构建我的项目(我的项目当然是使用该框架)。在我的 iPhone 上构建也是如此,一切都必须同步,不知道为什么,但它解决了这个问题。

我希望这对某人有所帮助。

【讨论】:

    【解决方案2】:

    如果你定义了同名的 NSObject,比如:

    NSObject *notUniqueObj;
    

    即使在 2 个不同的文件中(如果您在另一个文件中导入一个),它也会给您一个错误。给它们起不同的名字。

    【讨论】:

      【解决方案3】:

      我的问题是因为我没有在我的一个头文件中将变量定义为 extern,而是在 .c 文件中重新声明了。

      【讨论】:

        【解决方案4】:

        这些答案都没有帮助我。然后我尝试重新安装 Cocoapods:

        pod deintegrate
        
        pod install
        

        问题解决了!

        【讨论】:

        • 我不确定与 pods 和 xcode 的断开连接在哪里,但通常很难确保 pods 文件进入 derivedData 文件夹。这似乎解决了这个问题。我希望我能从这个答案开始..
        【解决方案5】:

        在我的情况下,我包含 .m 文件,这就是编译器显示此类错误的原因。

        您应该检查不是 .m 文件“Sometime i”的最新文件导入

        【讨论】:

          【解决方案6】:

          这个问题的解决方法很简单 进入项目安装目录,打开文件即可 扩展名为“.xcworkspace”

          这将解决问题。

          【讨论】:

            【解决方案7】:

            使用 CocoaPod,首先安装然后打开工作区,而不是 CocoaPod website 中指定的项目。

            $ pod install
            
            $ open YOUR_PROJECT_NAME.xcworkspace
            

            【讨论】:

              【解决方案8】:

              请转到您的工作区设置并进行以下更改:

              Workspace Setting:
                 Build System:
                   Legacy BuilPer-User
              
              
               Per-User Workspace
                DerivedData:
                  Workspace relative location
              
              
              
              Build System 
                  Use User Setting
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2014-04-06
                • 2023-03-30
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多