2010-03-09 120 views
43

我试图编译Ercia Sadun的示例代码here,但这个错误想出了:SCNetworkReachability编译错误

warning: in /Users/interdev/iphone source code/Web Browser/Classes/SystemConfiguration.framework/SystemConfiguration, missing required architecture i386 in file 
    Undefined symbols: 
     "_SCNetworkReachabilityScheduleWithRunLoop", referenced from: 
      +[UIDevice(Reachability) scheduleReachabilityWatcher:] in UIDevice-Reachability.o 
     "_SCNetworkReachabilityCreateWithAddress", referenced from: 
      +[UIDevice(Reachability) hostAvailable:] in UIDevice-Reachability.o 
      +[UIDevice(Reachability) pingReachabilityInternal] in UIDevice-Reachability.o 
     "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from: 
      +[UIDevice(Reachability) unscheduleReachabilityWatcher] in UIDevice-Reachability.o 
     "_SCNetworkReachabilitySetCallback", referenced from: 
      +[UIDevice(Reachability) scheduleReachabilityWatcher:] in UIDevice-Reachability.o 
      +[UIDevice(Reachability) scheduleReachabilityWatcher:] in UIDevice-Reachability.o 
      +[UIDevice(Reachability) unscheduleReachabilityWatcher] in UIDevice-Reachability.o 
     "_SCNetworkReachabilityGetFlags", referenced from: 
      +[UIDevice(Reachability) hostAvailable:] in UIDevice-Reachability.o 
      +[UIDevice(Reachability) pingReachabilityInternal] in UIDevice-Reachability.o 
    ld: symbol(s) not found 
    collect2: ld returned 1 exit status 
     "_SCNetworkReachabilityScheduleWithRunLoop", referenced from: 
      +[UIDevice(Reachability) scheduleReachabilityWatcher:] in UIDevice-Reachability.o 
     "_SCNetworkReachabilityCreateWithAddress", referenced from: 
      +[UIDevice(Reachability) hostAvailable:] in UIDevice-Reachability.o 
      +[UIDevice(Reachability) pingReachabilityInternal] in UIDevice-Reachability.o 
     "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from: 
      +[UIDevice(Reachability) unscheduleReachabilityWatcher] in UIDevice-Reachability.o 
     "_SCNetworkReachabilitySetCallback", referenced from: 
      +[UIDevice(Reachability) scheduleReachabilityWatcher:] in UIDevice-Reachability.o 
      +[UIDevice(Reachability) scheduleReachabilityWatcher:] in UIDevice-Reachability.o 
      +[UIDevice(Reachability) unscheduleReachabilityWatcher] in UIDevice-Reachability.o 
     "_SCNetworkReachabilityGetFlags", referenced from: 
      +[UIDevice(Reachability) hostAvailable:] in UIDevice-Reachability.o 
      +[UIDevice(Reachability) pingReachabilityInternal] in UIDevice-Reachability.o 
     ld: symbol(s) not found 
     collect2: ld returned 1 exit status 
    Build failed (5 errors) 

......即使在我加入systemConfiguration.framework,它报道了同样的错误。它为什么这样做,我该如何使它工作?

回答

95

您添加了哪个SystemConfiguration.framework?第一行明确提出

警告:/Users/interdev/iphone source code/Web Browser/Classes/SystemConfiguration.framework/SystemConfiguration,在文件

缺少必需i386硬件架构,但你应该添加SDK之一,在/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks

该框架应该通过项目右键菜单中的“Add Existing Framework ...”添加。

+2

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library/Frameworks/SystemConfiguration.framework – arachide 2010-03-09 13:32:09

+0

@user如果你正在编译模拟器,路径应该是'/ Dev/Pl/''** ** iPhoneSimulator.platform''/开发/软件开发工具包/''** ** iPhoneSimulator3.1.sdk''/系统/ LIB/FR/SysConf.fr'。选择SysConf框架,查看信息,然后选择“相对于当前SDK”。 – kennytm 2010-03-09 13:36:09

+0

我试着添加你说的框架,但是当我通过点击'Getinfo'来检查时,它仍然指向 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library/Frameworks /SystemConfiguration.framework 我检查了Erica Sadun的项目,它现在运行良好。 但如果我将他们的源代码添加到我的项目中,错误仍然存​​在。 – arachide 2010-03-09 15:05:09