4

プロジェクトでいくつかの「.o」ファイルを使用していますが、コンパイル中に次のエラーが表示されます。

error:linker command failed with exit code 1 (use -v to see invocation)

以下にエラーログを投稿しました

Ld /Users/deepak/Library/Developer/Xcode/DerivedData/app-bnwpvhpbrfdurbdgxucyddqyfosh/Build/Products/Debug-iphonesimulator/app.app/app normal i386
    cd /Users/deepak/Workspace/iosDevelopement/PROJECTS/KML/app
    setenv IPHONEOS_DEPLOYMENT_TARGET 4.3
    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 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk -L/Users/deepak/Library/Developer/Xcode/DerivedData/app-bnwpvhpbrfdurbdgxucyddqyfosh/Build/Products/Debug-iphonesimulator -F/Users/deepak/Library/Developer/Xcode/DerivedData/app-bnwpvhpbrfdurbdgxucyddqyfosh/Build/Products/Debug-iphonesimulator -F/Users/deepak/Workspace/iosDevelopement/PROJECTS/KML/app -filelist /Users/deepak/Library/Developer/Xcode/DerivedData/app-bnwpvhpbrfdurbdgxucyddqyfosh/Build/Intermediates/app.build/Debug-iphonesimulator/app.build/Objects-normal/i386/app.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=4.3 -lstdc++ -licucore -lz -framework MapKit -framework CoreLocation -framework QuartzCore -framework UIKit -framework Foundation -framework CoreGraphics -framework KML -o /Users/deepak/Library/Developer/Xcode/DerivedData/app-bnwpvhpbrfdurbdgxucyddqyfosh/Build/Products/Debug-iphonesimulator/app.app/app
Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_ZipException", referenced from:
      objc-class-ref in ZipFile.o
      objc-class-ref in ZipReadStream.o
      objc-class-ref in ZipWriteStream.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

当初、より多くのエラーがあり、libs.dylibフレームワークをインポートすることでそれらを解決しました。

しかし、それでも2つのエラーが続きます。

編集:私はすでに人気のある質問を通過しましたi386の未定義のシンボル:_OBJC_CLASS _ $ _ SPKSMTPMessage "、参照元:エラー、しかし解決策は私のために機能しません

私がどこで間違っていたのか誰か知っていますか?xcodeの問題、ライブラリの欠落、または何かのリンクの失敗ですか?

前もって感謝します

4

2 に答える 2

39

エラーメッセージは、未定義のシンボルが、、​​、およびによって参照されていることを示してZipFile.oZipReadStream.oますZipWriteStream.o。これは、アプリでObjective-Zipライブラリを使用しようとしていることを意味します。

未定義のシンボルは_OBJC_CLASS_$_ZipExceptionです。@implemention ZipExceptionコンパイラは、ソースファイルでディレクティブを検出すると、このシンボルを生成します。

Objective-Zipライブラリには、ディレクティブZipException.mを含むという名前のファイルが含まれています。@implementation ZipException

最も可能性の高い説明は、単にZipException.mターゲットに含まれていないということです。そうしていることを確認してください。方法がわからない場合は、この回答をご覧ください。

もう1つの考えられる説明は、ディレクティブを削除したり、コンパイラから非表示にしたりZipException.mする方法で、おそらく誤ってファイルを変更したことです。@implementation ZipExceptionファイルを変更していないこと、およびファイルに@implementation ZipExceptionディレクティブが含まれていることを確認してください。

于 2013-01-07T07:43:45.197 に答える
0

私が提供している解決策は奇妙に聞こえ、実際に試すのにしばらく時間がかかりましたが、それは私にとってはうまくいきました。これは、すべてのフレームワークリンクの問題を修正した場合にのみ有効です。私の場合はそうだったが、それでもMach-Oエラーはほとんど残っていなかった。

リンクされたフレームワークとライブラリからすべてのライブラリを削除し([全般]タブの[iOSTarget]で)、左側のペインからリンクされたフレームワークとライブラリスペースにドラッグするだけでライブラリを追加し直しました。

于 2014-05-02T18:41:09.623 に答える