2012-04-17 6 views
7

मैं रिलीज मोड में Visuas C++ 10 में अपना मल्टीप्रोजेक्ट एप्लिकेशन बनाने का प्रयास करता हूं।
मुझे अगली लिंक त्रुटि मिलती है:
2> सभी आउटपुट अद्यतित हैं। 2> PidAppLib.lib (ThreadWin32.obj): त्रुटि LNK2011: precompiled ऑब्जेक्ट में लिंक नहीं है; \ Infinite_memories_svn \ परियोजनाओं \ sw \ NewPidTools \ PidWriter \ रिलीज \ PidLabler.exe: छवि
2> सी चला सकते हैं नहीं गंभीर त्रुटि LNK1120: 1 अनसुलझे बाहरी
2>
2> विफल बनाएँ।
विजुअल सी ++ - यह नहीं देख सकता कि कौन सा बाहरी गायब

मुझे कैसे पता चलेगा कि कौन सा ऑब्जेक्ट अनसुलझा है?
ThreadWin32.obj बाहरी lib है जो इंटरनेट से डाउनलोड किया गया था।

+0

डीबग में यह काम करता है ... मुझे लगता है कि समस्या precompiled ऑब्जेक्ट के साथ है, लेकिन मुझे नहीं पता कि यह क्या है –

+0

क्या आपने 'सभी को पुनर्निर्माण' करने का प्रयास किया था? (क्षमा करें - मुझे पता है कि यह बहुत बुनियादी है, लेकिन आप कभी नहीं जानते) – MiMo

+0

क्या आप अपनी लाइब्रेरी सेटिंग्स देख सकते हैं और सुनिश्चित कर सकते हैं कि वे रिलीज के लिए ठीक से सेट हैं? मैंने खुद को कोड काम करने के लिए डीबग के लिए सेट किया, और फिर भी रिलीज को बदलना भूल गया। –

उत्तर

6

ठीक है।
मैंने समस्या हल कर दी है।
मेरे पास 2 पुस्तकालय हैं, ए.लिब और बी.लिब, और प्रोजेक्ट, सी कहें। a.lib b.lib का उपयोग करता है ताकि a.lib की लाइब्रेरियन निर्भरताओं में मैंने b.lib जोड़ा, c a.lib का उपयोग करता है, इसलिए मैंने को निर्भरताओं पर जोड़ा।
यह डीबग में काम करता है लेकिन रिलीज में मुझे सी की निर्भरताओं में बी.लिब भी जोड़ना चाहिए। अजीब लेकिन यह समस्या हल हो गई

+0

यह लिंक समस्या [प्रोग्रामिंग बिट्स] (http://progbits.blogspot.in/) – MLS

3

मुझे यह एक बड़ी परियोजना में यह त्रुटि मिली जो मैं refactoring था। रिफैक्टरिंग प्रक्रिया के दौरान मैं कभी-कभी पूरी परियोजना बनाने के बिना किए गए परिवर्तनों की जांच करने के लिए व्यक्तिगत स्रोत फ़ाइलों को संकलित करता हूं। आपके प्रोजेक्ट कॉन्फ़िगरेशन के आधार पर इसके परिणामस्वरूप .obj फ़ाइलें एक अलग निर्देशिका में आउटपुट हो सकती हैं, जहां आप प्रोजेक्ट बनाने के दौरान सामान्य रूप से आउटपुट होते हैं। मेरे मामले में मैन्युअल रूप से संकलित स्रोत फ़ाइलों के लिए .obj फ़ाइलें मध्यवर्ती बिल्ड निर्देशिका के बजाय स्रोत कोड निर्देशिका में आउटपुट थीं।

इस बात का एक दुष्प्रभाव यह प्रतीत होता है कि पूरे प्रोजेक्ट का निर्माण करते समय, स्रोत फ़ाइलों को मैन्युअल रूप से संकलित किया गया था, भले ही अन्य परिवर्तनों का अर्थ यह नहीं हो सकता कि वे होना चाहिए (जैसे परिवर्तन को प्रीकंपिल्ड हेडर को पुनः संयोजित करना आवश्यक है फ़ाइल)।

मेरे लिए समाधान व्यक्तिगत स्रोत फ़ाइलों को मैन्युअल रूप से संकलित करके जेनरेट की गई सभी .obj फ़ाइलों को मैन्युअल रूप से हटा देना था। प्रोजेक्ट पर निष्पादित निष्पादन परियोजना कॉन्फ़िगरेशन के आधार पर भी काम कर सकता है।

+0

वास्तव में, मेरे लिए इस समस्या को ठीक करने के लिए साफ/पुनर्निर्माण के बारे में बेहतर स्पष्टीकरण देता है। – aquirdturtle

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