1

単体テストを実行しようとすると、XCodeでエラーが発生します。何か案は?

ビルド設定のフレームワーク検索パスを$(SDKROOT)/ Developer / Library / Frameworks $(DEVELOPER_LIBRARY_DIR)/Frameworksに変更してみました

しかし、それは何も変わりませんでした。

ld: warning: directory not found for option '-F/Applications/Xcode'

ld: warning: directory not found for option '-
F4.3.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk/Developer/Library/Frameworks'

ld: warning: directory not found for option '-F/Applications/Xcode'

ld: warning: directory not found for option '-F4.3.2.app/Contents/Developer/Library/Frameworks'

ld: warning: ignoring file /Applications/Xcode 4.3.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk/Library/Frameworks//SenTestingKit.framework/SenTestingKit, file was built for unsupported file format which is not the architecture being linked (x86_64)

Undefined symbols for architecture x86_64:
  "_STComposeString", referenced from:
      -[AddressBookFrameworkSyncHelperTest testAddingAPersonToGroupsFromAVcard] in AddressBookFrameworkSyncHelperTest.o
      -[SyncTesting testExample] in SyncTesting.o
  "_OBJC_CLASS_$_SenTestCase", referenced from:
      _OBJC_CLASS_$_AddressBookFrameworkSyncHelperTest in AddressBookFrameworkSyncHelperTest.o
      _OBJC_CLASS_$_SyncTesting in SyncTesting.o
  "_OBJC_CLASS_$_AddressBookFrameworkSyncHelper", referenced from:
      objc-class-ref in AddressBookFrameworkSyncHelperTest.o
     (maybe you meant: _OBJC_CLASS_$_AddressBookFrameworkSyncHelperTest)
  "_OBJC_METACLASS_$_SenTestCase", referenced from:
      _OBJC_METACLASS_$_AddressBookFrameworkSyncHelperTest in AddressBookFrameworkSyncHelperTest.o
      _OBJC_METACLASS_$_SyncTesting in SyncTesting.o

ld: symbol(s) not found for architecture x86_64

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

1 に答える 1

3

これらのエラーメッセージは問題を示しています。

ld:警告:オプション'-F / Applications/Xcode'のディレクトリが見つかりません

ld:警告:オプション'-F4.3.2.app/Contents/Developer/Library/Frameworks'のディレクトリが見つかりません

明らかに、フレームワークパスには、「/ Applications / Xcode 4.3.2.app/Contents/Developer/」ではなく、「/ Applications/Xcode」と「4.3.2.app/Contents/Developer/Library/Frameworks」が別々にあります。ライブラリ/フレームワーク」。

これがあなたがしたことである場合、おそらくどこかに引用符がありません。たぶん、あなたが試したのとまったく同じことをしているだけですが、その周りに引用符を付ければ、うまくいくでしょうか?

Xcodeが自動的に実行している場合、Appleはどこかに引用符がありません。回避策は、おそらく「Xcode4.3.2.app」の名前をスペースのないものに変更することです。

しかし、ここでも2番目の問題がある可能性があります。

ld:警告:ファイル/Applications/Xcode 4.3.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk/Library/Frameworks//SenTestingKit.framework/SenTestingKitを無視して、ファイルがビルドされましたリンクされているアーキテクチャではないサポートされていないファイル形式の場合(x86_64)

この場合、引用符は正しく、フレームワークを見つけています…しかし、必要な64ビット(x86_64)ビルドではなく、32ビット(i386)ビルドしかインストールされていないようです。

また、Xcode4.3.2で10.6SDKを見ると、SenTestingKit.frameworkというフレームワークがないため、これが最初にどこから来たのかについても少し興味があります。これは、Xcodeのインストールをさまざまな方法でハッキングした可能性があることを意味します。適切な解決策は、アンインストール、再インストール、および適切な処理を行うことです。ただし、これは、インストールしたXcode内(またはdeveloper.apple.com)からの追加インストールである可能性がありますが、私はインストールしていません。

于 2012-07-20T21:54:41.397 に答える