这已成为一种正确的痛苦,我已经看了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之前有一个额外的斜杠,它不应该存在。我删除了框架并重新添加,但没有帮助。如何删除这个额外的斜杠?
答案 0 :(得分: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/SystemConfiguration
你应该看到这样的输出:
Architectures in the fat file: SystemConfiguration are: armv6 armv7
如果不这样做,您的项目可能已设置为链接到SystemConfiguration.framework的错误版本。您的计算机上有该框架的多个版本。因此,我将验证您在项目中的框架路径(即SystemConfiguration)。
通常情况下,我希望该文件是这样的(根据您使用的操作系统版本进行调整):
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/SystemConfiguration.framework
答案 1 :(得分:0)
我在使用Cordova项目和org.apache.cordova.network-information
插件时遇到了大约8小时的问题。通过上面的答案和其他几个答案,我被鼓励在Xcode的Project > Target > Build Phases > Link Binary with Libraries
部分进行搜索,这是正确的。
但是虽然SCNetworkReachabilityCreateWithAddress
中定义了SystemConfigration.framework
,但我无法通过系统地添加和删除此库和其他库来消除链接器错误。
最后,我使用插件创建了一个新项目,并完全按原样复制了框架星座。现在它正在运作。
结论:
SystemConfiguration.framework
。它可能与目标架构不匹配。此外,检查构建中包含路径的奇怪字符。 答案 2 :(得分:0)
我只是清理并重新启动了xcode,它就起作用了。