का उपयोग करके संकलित किया गया है, मैं एक स्थिर पुस्तकालय संकलित कर रहा हूं जिसमें मुख्य रूप से टेम्पलेटेड वर्ग शामिल हैं। जब यह जीसीसी का उपयोग करके संकलित किया जाता है, परिणामी .a फ़ाइल लगभग 40 एमबी चिह्न के आसपास होती है। यह बहुत बड़ा है, लेकिन चल रहा templating की मात्रा के कारण पूरी तरह से अप्रत्याशित नहीं है। हालांकि, जब मैं VS2005 का उपयोग कर एक ही कोड संकलित करता हूं, परिणामी .lib फ़ाइल आ रही है (इसके लिए प्रतीक्षा करें!) 575 एमबी ..वीएस2005 का उपयोग करके संकलित करते समय विशाल स्थैतिक लाइब्रेरी फ़ाइल, सामान्य आकार जब जीसीसी
अब, जलने से पहले, मैंने देखा है: How can I get my very large program to link? और यह उपयोगी है यह समझते हुए कि टेम्पलेट संभावित रूप से libs को बड़ा बना रहे हैं, लेकिन मैं समझने में संघर्ष कर रहा हूं कि दो कंपाइलरों के आउटपुट आकार में इतने अलग क्यों हैं?
वी.एस. विकल्प हैं: (डीबग)
/Od /D "WIN32" /D "_DEBUG" /D "_LIB" /D "_WIN32_WINNT=0x0500" /D "_MBCS" /Gm /EHsc /RTC1 /MDd /W4 /nologo /c /Wp64 /Zi /TP /errorReport:prompt
(रिलीज)
/O2 /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_WIN32_WINNT=0x0500" /D "_MBCS" /FD /EHsc /MD /W4 /nologo /c /Wp64 /Zi /TP /errorReport:prompt
किसी भी टिप्पणी या संकेत बहुत सराहना कर रहे हैं ..
आप वीएस2005 ('/ डी" _DEBUG "') पर डीबग बिल्ड का निर्माण कर रहे हैं - क्या यह जीसीसी के समान है? यह काफी बड़ा अंतर कर सकता है। –
आप सही हैं, यह करता है .. वीएस2005 पर रिलीज बिल्ड संस्करण * केवल * 350 एमबी है .. फिर भी कहीं भी काफी छोटा नहीं है! – StevieG
क्या आप लिंकटाइम कोड पीढ़ी (एलटीसीजी) का उपयोग कर रहे हैं? यह स्थैतिक पुस्तकालयों को बहुत बड़ा बनाता है और फिर अनुकूलक लिंक-टाइम पर अंतिम कोड को कम करता है। –