मैं जानना चाहता हूं कि मुझे जीसीसी के बजाय एलडी लिंकर का उपयोग कब करना चाहिए। मैंने अभी सी ++ में एक सरल हैलो वर्ल्ड लिखा है, बेशक मैं आईस्ट्रीम लाइब्रेरी शामिल करता हूं। अगर मैं जीसीसी के साथ एक द्विआधारी फाइल बनाना चाहता हूं तो मैं बस उपयोग करता हूं:जब मुझे जीसीसी के बजाय एलडी का उपयोग करना चाहिए?
g++ hello hello.cpp
और मुझे अपनी बाइनरी फ़ाइल मिली है।
बाद में मैं एलडी लिंकर का उपयोग करने की कोशिश करता हूं। ऑब्जेक्ट फ़ाइल प्राप्त करने के लिए मैं उपयोग करता हूं: g++ -c hello.cpp
। ठीक है कि यह आसान था, लेकिन लिंक कमांड बहुत भयानक था:
ld -o hello.out hello.o -L /usr/lib/gcc/x86_64-linux-gnu/4.8.4/ /usr/lib/gcc/x86_64-linux-gnu/4.8.4/crtbegin.o /usr/lib/gcc/x86_64-linux-gnu/4.8.4/crtend.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/x86_64-linux-gnu/crtn.o /usr/lib/x86_64-linux-gnu/crt1.o -dynamic-linker /lib64/ld-linux-x86-64.so.2 -lstdc++ -lc
।
मुझे पता है कि gcc
एलडी का उपयोग करता है। gcc
का उपयोग सभी मामलों में या बस ज्यादातर मामलों में बेहतर है? कृपया, मुझे उन मामलों के बारे में कुछ बताएं जहां एलडी लिंकर का लाभ है।
लिंकर का उपयोग केवल तभी होता है जब आप जीसीसी का उपयोग नहीं कर रहे हों। अन्यथा 'gcc' या' g ++ 'का उपयोग करके आपको बहुत अधिक टाइपिंग और अधिक महत्वपूर्ण रूप से सहेजने के लिए जा रहा है, यह जानने के लिए कि आपको किस प्रकार टाइप करना है और कब। –
धन्यवाद, मुझे डर था कि मुझे एलडी का कोई उपयोगी उपयोग नहीं हुआ। बीटीडब्ल्यू आप
g++ -v -o hello hello.cpp
का उपयोग कर सकते हैं जो पुस्तकालयों को आपको लिंक करने की आवश्यकता है। तो लिंक फाइल/liberries के बारे में सभी कार्यों, मैं जीसीसी का उपयोग कर सेट कर सकते हैं? – Iceसमस्या यह है कि ऑब्जेक्ट फ़ाइलों, पुस्तकालयों और विकल्पों की सूची आपके द्वारा उपयोग किए जाने वाले जीसीसी विकल्पों के आधार पर बदल जाएगी, आप किस ओएस का उपयोग कर रहे हैं, जीसीसी का कौन सा संस्करण और संभावित रूप से अन्य कारक हैं। ध्यान दें कि आप 'gcc -o hello hello.o' जैसे कमांड का उपयोग करके जीसीसी के साथ बनाई गई ऑब्जेक्ट फ़ाइल को लिंक कर सकते हैं। –