正确,这已经变成正确的痛苦,我已经观察了两天,而且似乎无法解决。这是我遇到的错误。
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 ,它似乎并不想做任何事情,因为该错误不会消失。我已经看过很多相同的问题,但其中很多确实可以证实所有答案。这种现象是在没有人碰触的周末才发展起来的。谁能帮忙。
编辑
忘记添加此位。
编辑
对@gaige表示感谢,我发现了一个问题;在SystemConfiguration.framework之前有一个不应包含的额外斜线。我删除了框架并重新添加了内容,但没有帮助。如何删除这个多余的斜杠?
最佳答案
通常,多余的斜杠不会破坏类似于UNIX的构建过程。
但是,您确实需要确保 armv7 体系结构位于您的构建尝试使用的框架文件中。为此,请在命令行中使用lipo -info
命令:
lipo -info /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks//SystemConfiguration.framework/SystemConfiguration
您应该看到如下输出:
Architectures in the fat file: SystemConfiguration are: armv6 armv7
否则,您的项目可能设置为链接到错误版本的SystemConfiguration.framework。您的计算机上有该框架的多个版本。因此,我将验证项目中具有的框架(即SystemConfiguration)的路径。
通常,我希望该文件是这样的(根据您使用的OS版本进行调整):
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/SystemConfiguration.framework