web-dev-qa-db-ja.com

Apple Mach-Oリンカー(Id)エラー

初めてこのエラーが発生しました。周りを見回しても解決策が見つかりません。ビルドをクリーンアップし、最新のファームウェア用にコンパイルしていることを確認しました。

これは、私が見つけた到達可能性ソリューションの実装に疲れた後に発生しました here 2つの到達可能性ファイル(.m/.h)をインポートして、このコードを.mファイルに追加し、でtと宣言しました。到達可能性ファイルのh

-(BOOL)reachable {
    Reachability*r =[Reachability reachabilityWithHostName:@"enbr.co.cc"];
    NetworkStatus internetStatus =[r currentReachabilityStatus];
    if(internetStatus ==NotReachable){
        return NO;
    }
    return YES;}

その後、私は両方のviwcontrollers viewwillappearメソッドから関数を呼び出しました。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];


    //-- Check Reachability START ---->
    Reachability *reach = [[Reachability alloc] init];

    if ([reach reachable]) {
            NSLog(@"Reachable");
    }
    else {
        NSLog(@"Not Reachable");
    }
     //-- Check Reachability END ---->
}

シミュレータでビルドして実行しようとするまで、エラーは発生しませんでした。これは私が受け取ったエラーです:(

Ld /Users/iMac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Products/Debug-iphonesimulator/wizcode.app/wizcode normal i386 cd "/ Users/iMac/Documents/Iphone applications/wizsanCode/wizsanCode.5/wizcode "setenv MACOSX_DEPLOYMENT_TARGET 10.6 setenv PATH" /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin "

/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 -Arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/iMac /ライブラリ/ Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Products/Debug-iphonesimulator -F/Users/iMac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Products/Build/Products iMac /ライブラリ/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/wizcode.LinkFileList -mmacosx-version-min = 10.6 -Xlinker- objc_abi_version -Xlinker 2 -lz -framework CoreGraphics -framework MobileCoreServices -framework SystemConfiguration -framework CFNetwork -framework UIKit -framework Foundation -o/Users/iMac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwulatorq/Build/Products /wizcode.app/wizcode

ld:重複したシンボル_OBJC_IVAR _ $ _ Reachability.reachabilityRef /Users/iMac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal -183E2D17A6B26176.oおよび/Users/iMac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/ReachoA6B2626D2B2626D2226アーキテクチャi386 collect2:ldが1の終了ステータスを返しましたコマンド/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1 ld:シンボル_OBJC_IVAR _ $ _ Reachability.reachabilityRefが/ Users/iMac /に重複していますライブラリ/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o and/Users/iMac/Library/Developer/DerivedData/wizcode-ccyrqptvfsabmbah gxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o for architecture i386

コマンド/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2が終了コード1で失敗しました

12
C.Johns

したがって、問題は解決されました。

到達可能性ファイルをビルドにインポートしたときに何かおかしいことが起こっていて、データの転送に使用していた「すべてを見る」ASIHTTPRequestメソッドで使用されているビルドにすでに存在している到達可能性ファイルを削除したのです。 。すべてを台無しにした。

要するに、私はファイルを置き換えてすべてが正常に機能していて、ASIHTTPTequestが私にとっての到達可能性を管理していることもわかりました。

8
C.Johns

SystemConfigurationが正しくリンクされているかどうかを確認します。とにかく、コードをクリーンアップします。

+ (BOOL)reachable {
    Reachability *r = [Reachability reachabilityWithHostName:@"enbr.co.cc"];
    NetworkStatus internetStatus = [r currentReachabilityStatus];
    return internetStatus != NotReachable;
}

その後、必要な場所で[Reachability reachable]を呼び出すだけです。これにより、メモリリークも修正されます。

2
Anton

これを追加するために、管理されたサブクラスを再生成した後に起こりました。実際に既存のサブクラスを上書きするのではなく、新しい複製を作成しただけです。両方を削除して再生成したところ、すべて問題ありませんでした。

1
Alan

このコードを自分のUIViewControllerの1つに含め、それを削除することでこのバグを解決しました。なんてばかで、何もはっきりしないエラーメッセージ

NS_ENUM(NSInteger, Mode) {
    Assessments = 0,
    Onboarding
};
0
coolcool1994

コアデータモデルを変更した後、(自動生成された)NSManagedObjectModelサブクラスをすべて削除し、再度作成しました。それらがすべて作成されたら、XCodeのGroupフォルダーにドラッグして、回転するビーチボールを通常よりも長く取得しました。

次に実行しようとしたときに、「Mach-O-Linker」(Id)エラーで失敗しました。他の応答を読んだ後、NSMObjクラスが予期した場所にないことに何らかの関係があるのではないかと考えました。私はそれらを削除し、終了し、開き、生成し、通常のグループフォルダーに配置しました...そしてViola! Mach-Oエラーはありません。

問題は解決されたようですが、適切な質問の下にインデックスを付けるためだけに投稿します。私の場合、管理対象オブジェクトのサブクラスを削除して(エディターメニューを介して)再生成すると、問題が解決しました。

0
James LeMay

それを削除して、もう一度追加してください。私のために働く。 :D

0
user1471316

.xcodeprojファイルの代わりにYourApp.xcworkspaceを実行していることを確認してください。 .xcodeprojファイルを実行したときと同じ問題に直面しました。 .xcworkspaceを実行すると問題が解決し、エラーはなくなりました。

0
Alexander

これは、プロジェクトにサードパーティの分析フレームワークを追加するときに発生します。フレームワークの情報をチェックすると、ディスクに正しくコピーされません。新しいフレームワークをダウンロードしてプロジェクトにコピーしたところ、エラーは発生しません。

0
Gaurav