2013-04-11 2 views
5

build Qt5 (32-bit) with VS 2012 करने के प्रयास के एक obstacle-ridden process के संदर्भ में, मैं अभी तक एक और निर्माण त्रुटि प्राप्त है।क्या करता है (सेट करें PATH = ...;% पाथ:) = ^)%) एक विंडोज शैल स्क्रिप्ट में है, और मैं Qt5 nmake build के संदर्भ में इस पंक्ति की विफलता को कैसे दूर कर सकता हूं?

यह है:

(सेट पथ = C: \ Users \ daniel347x \ डेस्कटॉप \ बैकअप \ __ Dan_Root \ qt5 \ qtbase \ lib;% पथ:) = ^)%) & C: \ उपयोगकर्ता \ daniel347x \ डेस्कटॉप \ Backup__Dan_Root \ qt5 \ qtbase \ बिन \ uic.exe संवाद \ qfiledialog.ui -ओ ui_qfiledialog.h

Nmake: गंभीर त्रुटि U1077: '(सेट': वापसी कोड '0xc0000135'

बंद करो।

मैं (set PATH=...;%PATH:)=^)%) विफलता समस्या (त्रुटि कोड 0xc0000135 लौटा रहा हूं) के बारे में कुछ भी प्रासंगिक नहीं पा रहा हूं जब मैं विस्तृत Google/StackOverflow खोज करता हूं।

ध्यान दें कि एक लंबे समय (एक से अधिक 1 घंटा) खुशी से, निर्देशिका स्विचिंग मध्यवर्ती .exe के चल रहा है, और दोनों के संकलन और कोड फ़ाइलों को जोड़ने के लिए nmake आय।

मैं 32-बिट विजुअल स्टूडियो 2012 टूल्स कमांड प्रॉम्प्ट में nmake (साथ ही configure चला रहा हूं) चला रहा हूं; और जहां तक ​​मुझे पता है, मेरे सभी path चर ठीक से सेट हैं (उनमें 32-बिट पर्ल और 32-बिट पायथन तक पथ शामिल हैं, हालांकि मुझे नहीं लगता कि यह यहां प्रासंगिक है)।

मैंने अपने कंप्यूटर को पुनरारंभ किया है, और मैंने प्रशासक विशेषाधिकारों के साथ वीएस 2012 टूल्स कमांड प्रॉम्प्ट चलाया (यदि यह एक अनुमति त्रुटि है), nmake चलाने का प्रयास कर रहा है, और एक ही त्रुटि होती है।

मैं तो यह पता लगाने की क्या त्रुटि वास्तव में है की कोशिश करने का प्रयास किया। उस समय, मैं इस कमांड लाइन बयान की वाक्य रचना की जाती है कि जाहिरा तौर पर एक Makefile ट्रिगर खोल स्क्रिप्ट के भीतर निष्पादित किया जा रहा द्वारा स्टम्प्ड हो गया:

(set PATH=...;%PATH:)=^)%) 
        ^^^^^^ // What do the symbols :)=^)% mean? 

मैं प्रतीकों समझ में नहीं आता:) = ^)% इस लिपि के संदर्भ में।

क्या कोई मुझे बता सकता है कि इन प्रतीकों का मतलब विंडोज शैल स्क्रिप्ट के संदर्भ में क्या है (जिसे nmake मेकफ़ाइल (वीएस 2012 के साथ 32-बिट Qt5 का निर्माण) के संदर्भ में निष्पादित किया जा रहा है)?

एक अतिरिक्त वैकल्पिक प्रश्न के रूप में, मैं यह त्रुटि को दूर करने और प्रगति को अवरुद्ध इस त्रुटि के बिना Qt5 निर्माण करने के लिए जारी रखने के लिए क्या कर सकते हैं?

+1

मुझे विश्वास है कि वे पथ चर पर स्ट्रिंग मैनिप्लेशंस हैं, लेकिन मुझे यकीन नहीं है कि वे विशेष रूप से क्या कर रहे हैं। – metalhead

+0

यदि लक्ष्य पथ के आगे एक नई निर्देशिका को प्रीपेड करना है और कोई स्ट्रिंग मैनिप्लेशंस की आवश्यकता नहीं है, तो:> = ^)% को केवल% के साथ प्रतिस्थापित किया जा सकता है (सेट PATH = ...;% पाथ%) – GregA100k

+0

मैं क्यूटी मेकफ़ाइल स्क्रिप्ट को संशोधित करने में संकोच करता हूं, कम से कम यह जानने के बिना कि स्ट्रिंग मैनिपुलेशन वास्तव में क्या कर रहा है। –

उत्तर

8

(set PATH=...;%PATH:)=^)%) एक स्ट्रिंग प्रतिस्थापन है। अधिक जानकारी के लिए help set कमांड आउटपुट में 'पर्यावरण परिवर्तनीय प्रतिस्थापन' देखें।

स्क्रिप्ट पथ चर पहले जोड़ता है, लेकिन प्रतिस्थापन के दौरान यह सही कोष्ठक निकल जाता है तो पूरी लाइन का प्रारूप सही है। उदाहरण के लिए,% PATH% में एक सबस्ट्रिंग "प्रोग्राम फ़ाइलें (x86)" हो सकती है जो विस्तार पर set सिंटैक्स को तोड़ देगी। ^ माता-पिता के सामने प्रतीक केवल एक बैच से बचने वाला प्रतीक है।

दूसरा, (...) & ... एक grouping operator है जो एकाधिक आदेशों को एक ही पंक्ति पर लिखा जा सकता है। स्क्रिप्ट लेखक ने उसी दो पंक्तियों को उसी पंक्ति पर रखने का फैसला क्यों किया है, लेकिन यह निश्चित रूप से त्रुटि को अस्पष्ट करने में मदद करता है।

तीसरा, Nmake '(सेट' कमांड के लिए एक त्रुटि रिपोर्ट हालांकि, त्वरित जाँच साबित कर दिया कि वापसी कोड (% errorlevel%) समूह के अंतिम आदेश से सेट है, इसलिए 0xc0000135 googling के किसी काम का नहीं है सेट के लिए और Nmake त्रुटि आदेश

त्रुटि का वास्तविक स्रोत 'uic.exe' है, कि में स्थित है:।

C:\Users\daniel347x\Desktop\Backup__Dan_Root\qt5\qtbase\bin\uic.exe 

त्रुटि के बारे में, 0xc0000135 - इस The application failed to initialize properly त्रुटि है मेरी। अनुमान है कि 'uic.exe' को असंगत टूलचेन/एसडीके के साथ बनाया गया था, या कुछ लापता डीएलएस की आवश्यकता है।

पीएस एक वैकल्पिक समाधान: एनएमके के बजाय जोम का उपयोग करके इसी तरह की समस्या has been solved

+2

... जिसने मुझे तुरंत निर्भरता वॉकर का उपयोग करके 'uic.exe' की जांच करने का नेतृत्व किया, जिसमें पता चला कि' आईसीयू 'डीएलएल गायब थे, जिसने यह स्पष्ट किया कि हालांकि मैंने आईसीयू' शामिल 'और' lib' पथ 'जोड़ा था, मैं आईसीयू डीएलएल युक्त रनटाइम पथ नहीं जोड़ा था, और समस्या हल हो गई है। दरअसल, शेल स्क्रिप्ट सिस्टम ने त्रुटि के स्रोत की पहचान करने का बहुत खराब काम किया। –

+0

@DanNissenbaum आपको इस समस्या को हल करने के लिए एक संभावित चीज़ के रूप में अपनी टिप्पणी जोड़ने या अनुरोध करने का अनुरोध करना चाहिए। यह वास्तव में मुझे बहुत समय बचाया। – BRabbit27

1

मुझे एक ही समस्या थी। मैंने इसे पुस्तकालयों आईसीयू के पथ पथ में जोड़ने का फैसला किया।

0

मुझे Win8 में Qt5.3 संकलित करने वाला एक ही समस्या थी। समाधान यह सुनिश्चित करना है कि आप PATH चर में और openSSL 32-बिन बाइनरी स्थान शामिल करें। यदि आप uic.exe ठीक से काम नहीं करते हैं

0

मुझे एक ही समस्या थी, मेरे मामले में मैंने वीएस -2008 के साथ आईसीयू का उपयोग करने की कोशिश कर रहे एक खराब संकलित आईसीयू (वीएस2012 के साथ संकलित) का उपयोग किया, मैं इसे वीएस -2008 के साथ आईसीयू संकलित करने का हल करता हूं और मेरे वीएस -2008 प्रोजेक्ट पर आईसीयू के इन संकलित संस्करण का उपयोग करना।

संबंधित मुद्दे