2012-06-07 16 views
9

यह सही दर्द बन गया है, मैं इसे 2 दिनों के लिए देख रहा हूं और इसे हल नहीं कर सकता। यहां मुझे मिली त्रुटि है।आर्किटेक्चर armv7 के लिए अनिर्धारित प्रतीकों: "_SCNetworkReachabilityCreateWithAddress"

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 जोड़ लिया है और यह इसके साथ कुछ भी कर के रूप में इस त्रुटि अभी दूर नहीं जाना होगा चाहते प्रतीत नहीं होता है। मैंने एक ही समस्या को देखा है लेकिन उनमें से बहुत से किसी भी उत्तर की पुष्टि की है। इस तरह का सिर्फ सप्ताहांत में विकसित हुआ जब किसी ने इसे छुआ नहीं था। क्या कोई मदद कर सकता है।

EDIT इस बिट को जोड़ने में भूल गए।

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

फ्रेमवर्क पथ में एक अजीब अतिरिक्त स्लैश है, जो उस पर असर डाल सकता है (या नहीं), क्या आप ढांचे को हटा और फिर से जोड़ सकते हैं? ढांचे की मेरी प्रति निश्चित रूप से v6 और v7 दोनों है, इसलिए यह ठीक होना चाहिए। – gaige

+0

@gaige मैंने फ्रेमवर्क को हटा दिया है और फिर से जोड़ा है और स्लैश अभी भी है कि मैं उस स्लैश को हटा सकता हूं क्योंकि मैंने अब टर्मिनल के माध्यम से फ़ाइल तक पहुंचने का प्रयास किया है और यह इसके साथ काम नहीं करता है लेकिन बिना यह। – Popeye

+1

यूनिक्स सिस्टम आमतौर पर अतिरिक्त स्लैश के कारण विफल नहीं होते हैं। मुझे लगता है कि यह संभव है। क्या आप सत्यापित कर सकते हैं कि प्रश्न में फ़ाइल में वास्तव में दोनों आर्किटेक्चर हैं? चलाएं 'लिपो -इन्फो/एप्लीकेशन/एक्सकोड.एप/सामग्री/डेवलपर/प्लेटफॉर्म/आईफोनओएस.प्लाफ्टर/डेवलपर/एसडीके/आईफोनओएस 5.1.sdk/सिस्टम/लाइब्रेरी/फ्रेमवर्क // सिस्टम कॉन्फ़िगरेशन.फ्रेमवर्क/सिस्टम कॉन्फ़िगरेशन' – Nate

उत्तर

8

आम तौर पर, अतिरिक्त स्लेश एक यूनिक्स जैसी निर्माण प्रक्रिया को अपनाने नहीं देंगे।

लेकिन, आपको यह सुनिश्चित करने की ज़रूरत है कि armv7 आर्किटेक्चर फ्रेमवर्क फ़ाइल के अंदर है जो आपका निर्माण उपयोग करने का प्रयास कर रहा है।

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 

आप नहीं, अपनी परियोजना शायद ऊपर से जोड़ने के लिए सेट कर दिया जाता है, तो ऐसा करने के लिए आदेश पंक्ति पर lipo -info आदेश का उपयोग करें SystemConfiguration.framework का गलत संस्करण। आपकी मशीन पर उस ढांचे के कई संस्करण हैं। इसलिए, मैं आपके प्रोजेक्ट में ढांचे के पथ (यानी सिस्टम कॉन्फ़िगरेशन) का मार्ग सत्यापित करूंगा।

आम तौर पर, मैं उम्मीद होती है कि फ़ाइल (आप उपयोग कर रहे OS संस्करण के लिए समायोजित) कुछ इस तरह होना करने के लिए:

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Lib‌​rary/Frameworks/SystemConfiguration.framework 
+0

बहुत बहुत धन्यवाद जिसने वास्तव में मदद की है और मुझे उम्मीद है कि यह भविष्य में दूसरों की मदद करेगा। – Popeye

0

मैं एक Cordova परियोजना और साथ के बारे में 8 घंटे के लिए इस समस्या को पड़ा है org.apache.cordova.network-information प्लगइन। ऊपर दिए गए उत्तरों और कई अन्य उत्तरों के द्वारा, मुझे Xcode के अनुभाग Project > Target > Build Phases > Link Binary with Libraries में खोज करने के लिए प्रोत्साहित किया गया था, जो सही था।

लेकिन SCNetworkReachabilityCreateWithAddressSystemConfigration.framework में परिभाषित किया गया है, मैं व्यवस्थित रूप से इसे और अन्य पुस्तकालयों को जोड़कर और हटाकर लिंकर त्रुटियों से छुटकारा पाने में सक्षम नहीं था।

अंत में, मैंने प्लगइन के साथ एक नई परियोजना बनाई और मूल रूप से फ्रेमवर्क नक्षत्र की प्रतिलिपि बनाई। अब यह काम कर रहा है।

निष्कर्ष:

  • संभव हो तो, आवश्यक एक्सटेंशन के साथ एक नई परियोजना बनाने और इसे से तारामंडल कॉपी। यह मदद कर सकता है।
  • कभी-कभी, एक पुस्तकालय बहुत अधिक शामिल होता है, इसलिए इसे अनचेक करें। कभी-कभी यह दूसरा रास्ता है।
  • गहराई से खोदने के लिए, ऊपर दिए गए उत्कृष्ट उत्तरों में वर्णित SystemConfiguration.framework देखें। यह लक्ष्य वास्तुकला का मिलान कर सकता है। इसके अलावा, पथ सहित निर्माण में अजीब वर्णों की जांच करें।
संबंधित मुद्दे