Xcode संस्करण 4.6.2 (4H1003) संकलक त्रुटि


88

मैंने अभी Xcode संस्करण 4.6.2 (4H10003) में अपडेट किया और सिम्युलेटर में पहले से काम कर रहे एप्लिकेशन प्रोजेक्ट को चलाने का प्रयास किया और निम्न त्रुटि प्राप्त की और बिल्ड विफल हो गया।

संकलक की तुलना में एक अलग शाखा ((clang-425.0.27)) से निर्मित PCH फ़ाइल ((clang-425.0.28))

क्या गलत हुआ और इसे कैसे ठीक किया जा सकता है?


मैंने एक उत्पाद बनाने की कोशिश की -> सिम्युलेटर के पहले से निर्मित ऐप को साफ और हटाना। न काम किया।
OscarTheGrouch

2
डिवाइस को बनाते समय "क्लीन बिल्ड फोल्डर" ने मेरी समस्या को हल नहीं किया (कई बार कोशिश की गई)। मुझे "क्लीन बिल्ड फोल्डर" बनाना था, सिम्युलेटर के लिए निर्माण करना था, फिर डिवाइस पर निर्माण करना था।
DBD

जवाबों:


183

परियोजना की सफाई करें; विकल्प को पकड़ें ताकि आप पूरे बिल्ड फ़ोल्डर और मध्यवर्ती को साफ कर रहे हैं। आपको Xcode को छोड़ना होगा और DerivedData फ़ोल्डर की पूरी सामग्री को फाइंडर में हाथ से फेंकना होगा, जैसा कि मैं यहाँ वर्णन करता हूँ: कैसे करें कैश और खाली सभी लक्ष्य Xcode 4


हां, मेरे लिए भी एक साफ काम किया। त्रुटि सिर्फ यह कह रही है कि पूर्व-संकलित हेडर एक अलग संस्करण के साथ बनाया गया था और नवीनतम संकलक संस्करण के साथ संगत नहीं है।
झिंगले-डिंगल

यदि यह पिछले Xcode उन्नयन पर आपके साथ नहीं हुआ है, तो आप भाग्यशाली थे। यह मेरे साथ हुआ है। आपको थोड़ी देर बाद इसकी आदत हो जाती है ...
मैट

नीचे दिए गए विकल्प के साथ 'क्लीन बिल्ड फोल्डर' करने के बाद मेरे लिए यह काम किया। धन्यवाद!
ल्यूक

1
यह मेरे लिए काम किया धन्यवाद ... मुझे नहीं पता था कि विकल्प को पकड़ना एक अलग तरह का साफ है।
OscarTheGrouch

यह केवल Xcode के निर्माण के लिए काम करता है। यदि आप कमांड लाइन से निर्माण कर रहे हैं, तो नीचे रॉड्रिगो लीमा की पोस्ट देखें।
जेफ

21

अपने प्रोजेक्ट पर जाएं Build Settings, नाम की एक सेटिंग ढूंढें Precompiled Headers Cache Path, फिर उस फ़ोल्डर को हटा दें


केवल इस कार्रवाई ने मुझे उल्लेखित समस्या के साथ मदद की। धन्यवाद!
ऑरेंज

13

command+shift+kमौजूदा प्रोजेक्ट को फिर से उपयोग करके चलाएं और सफाई करें।

यहाँ छवि विवरण दर्ज करें


9

XCode 4.6.2 से नोट्स जारी करें

ज्ञात पहलु

इमारत

जब Xcode 4.6.1 या इससे पहले निर्मित उत्पाद का निर्माण किया जाता है, तो निर्माण इस के समान त्रुटि के साथ विफल हो जाता है:

संकलक की तुलना में एक अलग शाखा ((clang-425.0.27)) से निर्मित PCH फ़ाइल ((clang-425.0.28))

इस समस्या को हल करने के लिए, अपने उत्पाद के निर्माण से पहले उत्पाद> स्वच्छ चुनें। 13663167

उत्पाद का प्रदर्शन> स्वच्छ कार्य


1
हाँ, यह पिछले संस्करणों के साथ एक समस्या थी, लेकिन यह केवल अब जारी किए गए नोटों में उल्लेख के लायक है। इसके अलावा, वे Xcode को IDE के रूप में उपयोग नहीं करने वाले लोगों के लिए कोई समाधान नहीं देते हैं, @sycx करता है (स्पष्ट Precompiled Headers Cache Path)।
A-Live

9

मैंने ऊपर सभी की कोशिश की है और यह Xcode UI से ठीक काम करता है, लेकिन यह तब भी मेरे लिए असफल रहा जब मैं कमांड लाइन से xcodebuild भागा ।

ऐसा अन्य पुस्तकालयों और उनके पूर्व-संकलन प्रमुखों पर निर्भरता के कारण था। कमांड लाइन से चलने पर, xcodebuild स्टोर की तरह दिखता है / यहाँ से पूर्व-संकलित हेडर पढ़ता है:

/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders

उस फ़ोल्डर को साफ करने के बाद, xcodebuild सफल हुआ।


2
यह फ़ोल्डर स्थान सभी के लिए अलग-अलग होगा, इसलिए क्लीन करने के लिए सही फ़ोल्डर का पता लगाने का एक त्वरित तरीका एक खोज + grep का उपयोग करना है ... sudo find / var / folder | grep SharedPrecompiled
ग्रेग कॉम्ब्स

1
मुझे भी यही समस्या थी। कमांड लाइन से चलना विफल रहा, भले ही मैं Xcode के भीतर से निर्माण कर सका। मैंने दौड़ना समाप्त कर sudo find /private/var/folders -name SharedPrecompiledHeadersदिया : और फिर परिणामस्वरूप निर्देशिकाओं को खाली कर दिया। एक जादू की तरह काम किया।
जेफ

अगर मैं इसे एक अतिरिक्त उत्थान दे सकता हूं। कमांड लाइन से निर्माण करते समय निश्चित रूप से सफाई मुझे काम नहीं लगती है। मुझे उम्मीद थी कि यह होगा, लेकिन पहले से तैयार हेडर की तलाश करना बहुत मददगार था।
जॉन बोवर्स

4

विशेष रूप से यदि आप कमांड लाइन से निर्माण करते हैं या आपके पास बिल्ड स्क्रिप्ट है, तो xcode लक्ष्य को साफ करना पर्याप्त नहीं है। आपको इस फ़ोल्डर को हटाना होगा।

Precompiled हेडर का सटीक स्थान प्रोजेक्ट में पाया जा सकता है, फ़ोल्डर पथ का एक हिस्सा यादृच्छिक है (मुझे लगता है), esp के बाद /var/folders/xx..xxx/C।

Target -> build settings => "Build locations" -> Precompiled headers cached path

टर्मिनल चलाएं और इस फ़ोल्डर में जाएं और हटाएं (कमांड का उपयोग करें),

#rm -fr SharedPrecompiledHeaders

यहाँ छवि विवरण दर्ज करें


बहुत बढ़िया जवाब! लेकिन मेरे पास उस स्थान पर ऐसा कोई फ़ोल्डर नहीं था (यहां तक ​​कि टर्मिनल प्रॉम्प्ट पर ls -lAhF का उपयोग करके)। हालाँकि Xcode को बंद करना और फिर com.apple.Xcode.501 फ़ोल्डर को हटाना ठीक काम किया।
रेडिएटी

Precompiled हेडर का सटीक स्थान प्रोजेक्ट में पाया जा सकता है, फ़ोल्डर पथ का एक हिस्सा यादृच्छिक है (मुझे लगता है), esp के बाद /var/folders/xx..xxx/C।
करीम

क्षमा करें - मैं स्पष्ट नहीं था। हाँ पथ हमेशा नीचे / var / फ़ोल्डरों / * में बदल जाएगा, लेकिन फ़ोल्डर जो "SharedPrecompiledHeaders" नहीं था - जिसने मुझे आश्चर्यचकित किया। लेकिन मेरे द्वारा बताए गए मूल फ़ोल्डर को हटाने से समस्या के बिना काम करना चाहिए।
RedYeti

4

मुझे मैन्युअल रूप से हटाना ~/Library/Developer/Xcode/DerivedData/ था मेरे लिए क्लीन ने काम नहीं किया।


0

अपनी परियोजना को साफ करने के लिए "कमांड + शिफ्ट + के" का उपयोग करें, फिर आप ठीक हो जाएंगे।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.