2013-02-12 19 views
13

कुछ लिनक्स ऐप्स जैसे सुपरर्टक्सकार्ट या रेग्नम ऑनलाइन में स्थिर बाइनरी हैं, जो किसी भी साझा लाइब्रेरी को इंस्टॉल किए बिना केवल काम डाउनलोड करने के बाद। हर distro पर। मैं ऐसा ऐप कैसे बना सकता हूं?प्रत्येक डिस्ट्रो पर चलने वाली स्थिर बाइनरी कैसे बनाएं?

उत्तर

14

सुनिश्चित करें कि आपकी सभी संसाधनों निष्पादन में निहित हैं और स्थिर निष्पादन लिंक:

gcc -o foo main.o -static -lbaz -lbar 

बहरहाल, यह भी कमियां हैं। गतिशील लिंकिंग देखो।

+1

यदि मैं स्थिर रूप से lib ए लिंक करता हूं, जो स्वयं lib lib को लिंक करता है, तो क्या मुझे lib B को भी लिंक करना होगा? – user1873947

+0

@ user1873947: जब आप स्थैतिक रूप से लिंक करते हैं, पुस्तकालय अन्य पुस्तकालयों का उल्लेख नहीं कर सकते हैं। आपको उन्हें कमांड लाइन पर नाम देना होगा, या 'libtool' का उपयोग करना होगा। – thiton

+0

ठीक है। द्विआधारी के लिए एक लिनक्स कमांड है जो कहता है कि साझा किए गए libs क्या उपयोग करता है, क्या ऐसा कुछ है जो libs के लिए है? यह जांचने के लिए कि मुझे क्या लिंक करना है। – user1873947

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