10

これは右の痛みになりました.2日間見てきましたが、解決できないようです. これが私が得ているエラーです。

Undefined symbols for architecture armv7:
"_SCNetworkReachabilityCreateWithAddress", referenced from:
  +[Reachability reachabilityWithAddress:] in Reachability.o
"_SCNetworkReachabilityCreateWithName", referenced from:
  +[Reachability reachabilityWithHostName:] in Reachability.o
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
  -[Reachability stopNotifier] in Reachability.o
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
  -[Reachability startNotifier] in Reachability.o
"_SCNetworkReachabilitySetCallback", referenced from:
  -[Reachability startNotifier] in Reachability.o
"_SCNetworkReachabilityGetFlags", referenced from:
  -[Reachability connectionRequired] in Reachability.o
  -[Reachability currentReachabilityStatus] in Reachability.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

SystemConfiguration.frameworkを追加しましたが、このエラーが消えないため、何もしたくないようです。私はかなりの数の同じ問題を見てきましたが、それらの多くは答えを確認しています。この種の現象は、誰も触れていない週末に発生しました。誰でも助けることができます。

編集 このビットを追加するのを忘れました。

ld: 警告: ファイル /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks//SystemConfiguration.framework/SystemConfiguration を無視し、必要なアーキテクチャ armv7 がありませんファイル内

編集

@gaige のおかげで問題が見つかりました。そこにあってはならない SystemConfiguration.framework の直前に余分なスラッシュがあります。フレームワークを削除して再度追加しましたが、役に立ちませんでした。この余分なスラッシュを削除するにはどうすればよいですか?

4

3 に答える 3

8

通常、追加のスラッシュは UNIX のようなビルド プロセスを台無しにすることはありません。

ただし、ビルドが使用しようとしているフレームワーク ファイル内にarmv7アーキテクチャが含まれていることを確認する必要があります。これを行うにはlipo -info、コマンド ラインで次のコマンドを使用します。

lipo -info /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer‌​/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks//SystemConfiguration.framework/Sy‌​stemConfiguration

次のような出力が表示されます。

Architectures in the fat file: SystemConfiguration are: armv6 armv7

そうしないと、プロジェクトが間違ったバージョンの SystemConfiguration.framework にリンクするように設定されている可能性があります。マシンには、そのフレームワークの複数のバージョンがあります。したがって、プロジェクトにあるフレームワーク (SystemConfiguration など) のパスを確認します。

通常、そのファイルは次のようなものになると思います(使用しているOSのバージョンに合わせて調整されています):

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Lib‌​rary/Frameworks/SystemConfiguration.framework
于 2012-06-08T09:08:59.500 に答える
0

xcodeをクリーンアップして再起動しただけで、うまくいきました。

于 2018-08-01T19:52:06.277 に答える