【发布时间】:2012-06-11 09:50:03
【问题描述】:
是的,这已经成为一个正确的痛苦我已经看了 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 之前有一个额外的斜线,不应该存在。我已删除框架并重新添加,但没有帮助。如何删除这个多余的斜线?
【问题讨论】:
-
UNIX 系统通常不会因为额外的斜线而失败。我想这是可能的。你能验证有问题的文件确实有这两种架构吗?运行
lipo -info /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks//SystemConfiguration.framework/SystemConfiguration -
如果您担心多余的斜线,您可以在文本编辑器中打开您的 project.pbxproj 文件,并查找包含框架路径的行吗?像这样的东西:
name = SystemConfiguration.framework; path = System/Library/ ... -
这条路径对我来说也不熟悉。当我使用 SystemConfiguration.framework 创建一个项目时,它在这里使用一个:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/SystemConfiguration.framework。我实际上尝试删除/Applications/Xcode.app下的文件,然后重建,它工作正常。所以,我不确定你为什么要使用那个文件。您是否明确地将框架添加到您的项目中?如果有,怎么做?
-
好吧,看起来不对。你想看这个:
Architectures in the fat file: SystemConfiguration are: armv6 armv7 -
所以,现在我的后续又是“你是如何在 Xcode 中添加该框架的?”。当你选择它时,也许你手动导航到 /Applications/Xcode.app 下的那个位置?
标签: iphone ios objective-c xcode frameworks