2012-07-14 16 views
18

चलो कहते हैं कि मैं एक बहुत ही सरल सी फ़ाइल (बुलाया foo.c) करते हैं उदाहरण), डिफ़ॉल्ट रूप से कौन से पुस्तकालय जुड़े हुए हैं और वे कहां स्थित हैं? (मैक ओएस एक्स 10.7 पर)जीसीसी द्वारा जुड़े डिफ़ॉल्ट पुस्तकालय?</p> <pre><code>int main() { printf("foo"); return 0; } </code></pre> <p>अब मैं जीसीसी फोन:</p> <pre><code>gcc foo.c </code></pre> <p>जब मैं (जीसीसी फोन नहीं विकल्पों के साथ ऊपर के रूप

उत्तर

22

gcc को -v विकल्प यह डिफ़ॉल्ट विकल्प यह पुस्तकालय रास्तों और डिफ़ॉल्ट पुस्तकालयों का उपयोग करें और फ़ाइलों कि में लिंक कर दिया जाएगा आपत्ति जाएगा के बारे में जानकारी डंप करने के लिए कारण होगा में स्थित हैं।

यदि आप -Wl,--verbose विकल्प देते हैं, तो gcc --verbose को लिंकर पर पास कर देगा जो कि असफल और सफल दोनों खोजों सहित पुस्तकालयों की तलाश में ठीक से डंप करेगा।

दोनों विकल्पों कम्बाइन, और आप देखेंगे कि वास्तव में क्या पुस्तकालयों में जुड़े हुए हैं, और क्यों वे में जोड़ा जा रहा है कर रहे हैं।

gcc -v foo.c -Wl,--verbose 
+0

मेरे मैक पर, एलडी का कहना है कि --verbose एक अपरिचित विकल्प – user1516425

+1

@ user1516425 है: ओह - जब मैं 'gcc' देखता हूं, तो मुझे लगता है कि जीएनयू' ld' शामिल है। एक्सकोड लिंकर के लिए कुछ दस्तावेज़ देख रहे हैं, https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/ld.1.html, आप देखना चाहते हैं कि '-t 'लिंकर विकल्प चाल करेगा। विचार करने के लिए कुछ अन्य विकल्प उस पृष्ठ पर शीर्षक "लिंकर का आत्मनिरीक्षण करने के विकल्प" के अंतर्गत पाए जा सकते हैं। –

1
+3

यह केवल गतिशील पुस्तकालयों दिखाएगा। –

+2

नोट उन्होंने मैक ओएस एक्स 10.7 कहा, जहां कोई 'ldd' नहीं है। समकक्ष 'otool -L' है। इसके लिए –

-1

मानक पुस्तकालय डिफ़ॉल्ट रूप से जुड़े होते हैं। वे/usr में लिनक्स मशीनों

+2

'पथ' का उपयोग नहीं किया जाता है। – zwol

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