2009-10-12 11 views
14

विजुअल स्टूडियो 2008 एसपी 1,
का उपयोग करना यह लाइन:सी ++: लिंक: डीबग XXXXX.exe अंतिम वृद्धिशील लिंक द्वारा नहीं मिला या नहीं बनाया गया है; पूरा लिंक प्रदर्शन

LINK : debug\XXXXX.exe not found or not built by the last incremental link; performing full link 

हर बार प्रोजेक्ट संकलित करता है, इससे कोई फर्क नहीं पड़ता कि मैं कितना छोटा बदलाव करता हूं।
इसके कारण क्या हो सकते हैं?

उत्तर

5

तो यह पता चला है कि यदि समस्या /INCREMENTAL लिंकर कमांड लाइन में जोड़ती है तो समस्या स्वयं को ठीक कर देती है। यह इस तथ्य के बावजूद कि दस्तावेज़ों के अनुसार डिफ़ॉल्ट व्यवहार वृद्धिशील लिंकिंग को सक्षम करना है।

अजीब।

+0

यह मेरे लिए किया था। बड़ी मदद! –

4

सच अंधेरे लेकिन, में शूटिंग ...

आप XXXXX.exe के लिए कदम है, जहां से इसे कहीं और करने के लिए बनाया गया है? एक वृद्धिशील लिंक का पूरा बिंदु मौजूदा exe को बदलना है। अगर वहाँ कोई भी है, यह कठिन हो जाएगा ...

एक अन्य संभावित कारण है कि फाइल का निर्माण (शायद एक और उपकरण द्वारा) के बाद बदल गया था है ...

सभी कारणों the help item for /INCREMENTAL में सूचीबद्ध हैं:

वृद्धिशील स्थिति (.ilk) फ़ाइल लापता है:

साथ ही, लिंक एक पूर्ण लिंक यदि निम्न स्थितियों में से कोई भी कार्य करता है। (लिंक बाद वृद्धिशील जोड़ने के लिए तैयार करने में एक नया .ilk फ़ाइल पैदा करता है।)

.ilk फ़ाइल के लिए कोई लिखने की अनुमति नहीं है। (LINK .ilk फ़ाइल को अनदेखा करता है और nonincrementally लिंक करता है।)

.exe या .dll आउटपुट फ़ाइल गुम है।

.ilk, .exe, या .dll का टाइमस्टैम्प बदल गया है।

एक लिंक विकल्प बदला गया है। अधिकांश लिंक विकल्प, जब बिल्ड के बीच बदलते हैं, एक पूर्ण लिंक का कारण बनता है।

एक ऑब्जेक्ट (.obj) फ़ाइल जोड़ा गया है या छोड़ा गया है।

/Yu/Z7 विकल्प के साथ संकलित एक ऑब्जेक्ट बदल दिया गया है।

+0

नहीं .. लिंक करने के बाद exe को छूता नहीं है। – shoosh

+0

वायरस स्कैनर, खोज अनुक्रमणिका, बैकअप सॉफ़्टवेयर जैसी चीजों के बारे में कैसे? क्या आपके सिस्टम पर सभी नई फाइलों को छू रहा है? –

1

(अंधेरे में भी) एक संभावित कारण यह है कि आप __DATE__ मैक्रो का संदर्भ देने वाले प्रोजेक्ट-व्यापी शीर्षलेख का उपयोग करते हैं। लेकिन उस स्थिति में, आप एक पूर्ण पुनर्मूल्यांकन भी देखेंगे (क्या आप?)

+0

कभी भी एक पूर्ण पुनर्मूल्यांकन नहीं है और मैं __DATE__ कहीं भी – shoosh

3
  1. माइक्रोसॉफ्ट से procmon डाउनलोड करें।
  2. इसे चलाएं, एक फ़िल्टर सेट करें ताकि आप उस पथ तक पहुंच की तलाश कर रहे हों जिसमें आपका .exe नाम है।
  3. एक लिंक करें।
  4. देखें कि इसमें क्या समस्या है - क्या यह इसे पाता है, क्या यह इसे खोलने में त्रुटि लॉग करता है। प्रोकॉन प्रत्येक फ़ाइल को खुले, पढ़े, बंद, इत्यादि को लॉग करेगा। अगर इसे कोई त्रुटि मिलती है, तो यह लॉग करेगा।
  5. यह भी सुनिश्चित करें कि यह .ilk फ़ाइल ढूंढ सकता है - मुझे लगता है कि इसे भी इसकी आवश्यकता है।
+0

का संदर्भ नहीं दे रहा हूं यहां लॉग है: http://www.shiny.co.il/shooshx/k/Kawaiiexe.PML मैं वास्तव में कुछ भी गलत नहीं देख सकता। क्या आप? – shoosh

+0

टेक्स्ट फ़ाइल पोस्ट करना उन लोगों की सहायता करेगा जिनके पास प्रोमोमन इंस्टॉल नहीं है। –

+0

सीवीएस सबसे अच्छा कर सकता है: http://www.shiny.co.il/shooshx/k/Kawaiiexe.CSV – shoosh

13

पुराना सवाल, लेकिन सिर्फ किसी के लिए मामले में यह अभी भी एक मुद्दा है (और यह है ..)।

वृद्धिशील लिंक मैनिफ़ेस्ट फ़ाइल पैदा करने के साथ असंगत है (Proj विकल्प चुनता> लिंकर> प्रकट फ़ाइल> प्रकट उत्पन्न: हाँ)। दरअसल, अभिव्यक्ति उत्पन्न करना exe/dll को संशोधित करता है ताकि लिंकर को पूर्ण लिंक करना होगा।

वहाँ कुछ समाधान अधिक जानकारी के लिए, कर रहे हैं: http://chadaustin.me/2009/05/incremental-linking-and-embedded-manifests/

अस्थाई (और सबसे आसान/सबसे तेजी से) समाधान के विकास के दौरान प्रकट पीढ़ी को अक्षम करें और रिहाई चरण में इसे फिर से सक्षम करने के लिए है। हालांकि यह ऐप के लिए एक्सपी/विस्टा-स्टाइल गुई को अक्षम करता है (नियंत्रण "क्लासिक मोड" जैसा दिखता है)।

0

मेरे मामले में, मैं कल इस त्रुटि मिला है।

वीएस code generation > runtime LibraryMulti-threaded Debug (/MTd) के बजाय Multi-threaded Debug DLL (/MDd) पर सेट करें।

मैं नई परियोजना को पुन: यदि यह बुरा सेटिंग्स फिर से होता है। मैं मैन्युअल रूप से /Mtd पर स्विच करता हूं, फिर कोई त्रुटि नहीं होती है।