मुझे अपने निष्पादन योग्य आकार ( ARM
विकास) के आकार को अनुकूलित करने की आवश्यकता है और मैंने देखा कि मेरी वर्तमान बिल्ड स्कीम ( gcc
+ ld
) में अप्रयुक्त प्रतीकों को छीना नहीं जा रहा है।
arm-strip --strip-unneeded
परिणामी निष्पादकों / पुस्तकालयों के लिए उपयोग निष्पादन योग्य का आउटपुट आकार नहीं बदलता (मुझे पता नहीं क्यों, शायद यह आपको पसंद नहीं है) ।
मेरी बिल्डिंग पाइपलाइन को संशोधित करने का तरीका (यदि यह मौजूद है) क्या होगा , ताकि अप्रयुक्त प्रतीकों को परिणामस्वरूप फ़ाइल से छीन लिया जाए?
मैं इसके बारे में सोच भी नहीं सकता, लेकिन मेरा मौजूदा एम्बेडेड वातावरण बहुत "शक्तिशाली" नहीं है और बहुत अच्छे लोडिंग प्रदर्शन को बढ़ावा देने में परिणाम से 500K
बाहर भी बचा रहा है 2M
।
अपडेट करें:
दुर्भाग्य से वर्तमान gcc
संस्करण मैं उपयोग नहीं है -dead-strip
विकल्प और -ffunction-sections... + --gc-sections
के लिए ld
जिसके परिणामस्वरूप उत्पादन के लिए किसी भी महत्वपूर्ण अंतर नहीं देता है।
मैं हैरान हूं कि यह भी एक समस्या बन गई, क्योंकि मुझे यकीन था कि gcc + ld
अप्रयुक्त प्रतीकों को स्वचालित रूप से पट्टी करना चाहिए (उन्हें भी क्यों रखना है?)।
boost
पुस्तकालयों का उपयोग करते हैं, तो परिणामस्वरूप .exe
फ़ाइल में कई अप्रयुक्त ऑब्जेक्ट फाइलें होती हैं और मेरे वर्तमान एम्बेडेड रनटाइम के विनिर्देशों के कारण। , किसी 10mb
एप्लिकेशन को शुरू करना , उदाहरण के लिए, किसी 500k
एप्लिकेशन को शुरू करने में अधिक समय लेता है ।