शायद एक साधारण उत्तर; मैं इनमें से कुछ झंडे के लिए जीसीसी दस्तावेज में उपयोग की जाने वाली भाषा के साथ काफी उलझन में हूं!कुछ ऑप्टिमाइज़ेशन जैसे -फ्वोल-प्रोग्राम और -फ्रोफाइल-कई साझा पुस्तकालयों के साथ उत्पन्न होने पर
वैसे भी, मेरे पास तीन पुस्तकालय और एक कार्यक्रम है जो इन तीनों का उपयोग करता है। मैं अलग-अलग (संभावित रूप से) चेतावनी झंडे के अलग-अलग सेटों के साथ अलग-अलग पुस्तकालयों को संकलित करता हूं। हालांकि, मैं ऑप्टिमाइज़ेशन झंडे के एक ही सेट के साथ सभी तीन पुस्तकालयों को संकलित करता हूं।
मैं फिर इन तीन पुस्तकालयों में अपने मुख्य कार्यक्रम को संकुचित झंडे के सेट के साथ जोड़ता हूं और पुस्तकालयों के संकलन के दौरान उपयोग किए जाने वाले वही अनुकूलन झंडे को संकलित करता हूं।
1) क्या मुझे पुस्तकालयों को अनुकूलन झंडे के साथ संकलित करना है या क्या मैं अंतिम कार्यक्रम को संकलित करते समय और पुस्तकालयों को जोड़ने के दौरान इन झंडे का उपयोग कर सकता हूं? यदि उत्तरार्द्ध, तो क्या यह इन पुस्तकालयों में कोड के सभी या बस कुछ (संभवतः जिसे कहा जाता है) अनुकूलित करेगा?
2) मैं -fwhole-program -flto -fuse-linker-plugin और लिंकर प्लगइन सोना का उपयोग करना चाहता हूं। मैं किस स्तर पर इनके साथ संकलित करता हूं ... केवल अंतिम संकलन या पुस्तकालयों के संकलन के दौरान इन झंडे को प्रस्तुत करने की आवश्यकता है?
3) बहुत अधिक 2) हालांकि, -फ्रोफाइल-जेनरेट-फ़ायरोफाइल-आर्क और -प्रोफाइल-उपयोग। मैं समझता हूं कि एक व्यक्ति जेनरेट के साथ एक प्रोग्राम चलाता है, और फिर उपयोग के साथ। हालांकि, क्या मुझे उत्पन्न/उपयोग इत्यादि के साथ प्रत्येक पुस्तकालयों को संकलित करना है या सिर्फ अंतिम कार्यक्रम? और यदि यह केवल आखिरी कार्यक्रम है, तो जब मैं -फ्रोफाइल-उपयोग के साथ संकलित करता हूं तो यह पुस्तकालयों की कार्यक्षमता को भी अनुकूलित करेगा?
इसके अलावा - ध्यान दें कि -फ्लो उन साझा लाइब्रेरीज़ से बातचीत नहीं करता है जिन्हें आप लिंक कर रहे हैं, आप साझा लाइब्रेरी को स्वयं बनाते समय लिंक टाइम ऑप्टिमाइज़ेशन कर सकते हैं, इसलिए इसे बनाया जाने पर फ़्लोटो से लाभ होता है, लेकिन आपका स्वयं का निष्पादन योग्य उस साझा लाइब्रेरी के लिंक निष्पादन योग्य और साझा पुस्तकालयों से लिंक समय अनुकूलन निष्पादित नहीं कर सकते हैं। (लेकिन आप स्थिर पुस्तकालयों के साथ कर सकते हैं) – nos