2013-10-21 5 views
7

कुछ समस्याएं और आशा है कि मुझे कुछ मदद मिल सकती है।यूनिट परीक्षण के लिए एकाधिक .obj से लिंक करना एक कंसोल अनुप्रयोग

मैं दृश्य स्टूडियो में एक ही समाधान के तहत दो परियोजनाएं हैं 2012

पृष्ठभूमि मैं एक सांत्वना आवेदन जो एक .exe यह एक परियोजना में है के रूप में आउटपुट बनाने कैम के बारे में थोड़ी।

किसी अन्य प्रोजेक्ट में मेरे पास कंसोल एप्लिकेशन प्रोजेक्ट में कक्षाओं पर इकाई परीक्षण चलाने के लिए Google परीक्षण सेट अप है।

यदि मैं मुख्य परियोजना को स्थैतिक पुस्तकालय में संकलित करने में सक्षम था, तो .lib से लिंक करने के कारण कोई समस्या नहीं होगी, हालांकि यह एक विकल्प नहीं है।

मुझे पता चला है कि .obj कार्यों से लिंक करना है, हालांकि मुझे प्रत्येक को मैन्युअल रूप से लिंकर -> इनपुट में दर्ज करना होगा और बड़ी संख्या में कक्षाएं होने के कारण मैं इसे गन्दा हो सकता हूं।

मैं इस समस्या को कैसे हल करूं, क्या एक ही फ़ोल्डर में सभी .obj को जोड़ने का कोई तरीका है या क्या कोई विकल्प है जो मुझे याद नहीं है?

उत्तर

20

मैं तुम्हारा के रूप में ठीक उसी विन्यास था और यह मैं क्या किया है:

मैं एक उदारीकरण पुस्तकालय में सभी .obj फ़ाइलें डाल करने के लिए दृश्य स्टूडियो के उदारीकरण उपयोगिता इस्तेमाल किया है, और फिर मैं अपने gtest कर सकता है परियोजना लिंक इसके लिए।

अपने मुख्य परियोजना के "घटनाओं बनाएँ"/"के बाद निर्माण घटना" में आदेश

lib /NOLOGO /OUT:"$(TargetPath).lib" "$(ProjectDir)\$(Configuration)\*.obj" 

लाना, आप एक .exe के रूप में अपने कंसोल आवेदन रखने के लिए और एक ही समय में कुल कर सकते हैं अपने सभी obj फ़ाइलों को एक अद्यतित lib करने के लिए।

उम्मीद है कि यह मदद करता है!

वैसे, यह समस्या इस पोस्ट के समान ही है: Linker error - linking two "application" type projects in order to use Google Test और मुझे लगता है कि यह इसे लिंक करने के लिए उपयोगी हो सकता है।

+1

बिल्कुल मुझे जो चाहिए वह धन्यवाद। –

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