2009-12-31 19 views

उत्तर

5

एक पुस्तकालय में दो मुख्य घटक होते हैं - सी हेडर फ़ाइलें और संकलित ऑब्जेक्ट कोड संग्रह। जीसीसी के पास इन चीजों को निर्दिष्ट करने के तरीकों की एक विचित्र श्रृंखला है, लेकिन मान लें कि आप लाइब्रेरी foo.a का उपयोग कर रहे हैं जो सापेक्ष निर्देशिका पथ foo/lib में रहता है, और एक शीर्षलेख foo.h जो foo/inc में रहता है। अपनी खुद की सी कोड main.c में रहती है और इस तरह दिखता है:

gcc main.c -Ifoo/inc foo/lib/foo.a -o main.exe 

मैं झंडा पथ के लिए कहते हैं हेडर के लिए खोज:

#include "foo.h" 
int main() { 
    return FooFunc(); // call function in foo.a 
} 

इस संकलन के लिए, आपको आदेश पंक्ति का उपयोग कर सकते हैं। आप lib पथ में भी जोड़ सकते हैं, लेकिन फिर चीजें जटिल होने लगती हैं :-)

+0

+ 1, यह सहायक है! लेकिन क्या आप इसे अधिक सामान्य बना सकते हैं? कहें कि क्या मैं दो पुस्तकालयों को दो अलग-अलग निर्देशिकाओं से शामिल करना चाहता हूं। बीटीडब्ल्यू, ऐसा लगता है कि प्रत्येक पुस्तकालय में * .h और * एए, कम से कम मैं केवल * .a और * देखता हूं।ओ MinGW/lib के तहत? – user198729

+0

अधिक निर्दिष्ट करने के लिए पथ शामिल करें, अधिक पुस्तकालयों को निर्दिष्ट करने के लिए अधिक II ध्वज का उपयोग करें, उन्हें कमांड लाइन पर निर्दिष्ट करें। दिन के अंत में, एसओ एक ट्यूटोरियल साइट नहीं है - जीसीसी मैनुअल और स्पष्ट रूप से एक किताब, जैसे http://www.network-theory.co.uk/gcc/intro पढ़ें। –

2

gcc

  • का उपयोग कर स्रोतों
  • अनटार
  • रन कॉन्फ़िगर प्राप्त किसी अन्य प्रणाली से कोई अलग - यह एक ट्वीक या दो
  • की आवश्यकता हो सकती
  • कर स्थापित कर

और अब अपना नया उपयोग करें उचित -Lfoo/bar -lfoobar स्विच के साथ लाइब्रेरी।

मैं यह सब करने के लिए सिस्टम MinGW के आसपास सिस्टम की अनुशंसा करता हूं।

+0

ओह, मैं यह उल्लेख करना भूल गया कि मैं विंडोज एक्सपी का उपयोग कर रहा हूं, क्या आप विवरण के बारे में अधिक विशिष्ट हो सकते हैं? – user198729

+0

यूनिक्स उपकरण के साथ कोड विकास के बारे में आपको एक पुस्तक (या वेब ट्यूटोरियल) की आवश्यकता है। यहां कुछ भी नहीं है जो विंडोज एक्सपी के लिए विशिष्ट है --- इस तथ्य के अलावा कि आप वर्कफ़्लो सीखने की कोशिश कर रहे हैं जो विंडोज पर आम नहीं है। आप यहां सही काम कर रहे हैं, लेकिन यह जानने के लिए कि यह एक्सपी पर कैसे किया जाता है, यह जानने के लिए लिनक्स/यूनिक्स पर यह कैसे कम या कम काम करता है। बस कहीं एक सभ्य ट्यूटोरियल ढूंढें ... –

1

मैं बस इसे स्वयं समझने के माध्यम से चला गया। मैं MingW वेबपृष्ठ पर linking howtos पढ़ने की दृढ़ता से अनुशंसा करता हूं। उन्हें ध्यान से पढ़ें क्योंकि इसमें काफी कुछ है। वे काफी अच्छी तरह से हैं हालांकि यह आपके समय के लायक है।

चीजें करने के अनिवार्य रूप से दो तरीके हैं। सबसे पहले, आप केवल MinGW को एक कंपाइलर के रूप में देख सकते हैं, क्योंकि यह वही है, और इसे cmd.exe (कमांड प्रॉम्प्ट) या आईडीई से आमंत्रित करें। ऐसा करने का दूसरा तरीका एमएसवाईएस का उपयोग करना है जो मूल रूप से यूनिक्स स्टाइल शैल है जिसे आप विंडोज़ पर यूनिक्स स्टाइल बिल्ड टूल्स जैसे कॉन्फ़िगर और बनाने के लिए चला सकते हैं।

इनमें से किसी एक के लिए आपको वास्तव में यह समझना होगा कि मैं कैसे ऊपर से जुड़ा हुआ हूं यह समझने के लिए कि निर्भरता पथ कैसे खोजे जा रहे हैं। मैं इसे यहां समझाने में संकोच करता हूं क्योंकि यह पहले से ही हाउटोस और डुप्लिकेट में समझाया गया है कि जानकारी एक अच्छा विचार नहीं है। यदि आपके पास पढ़ने के बाद आपके पास विशिष्ट प्रश्न हैं तो मुझे और सहायता प्रदान करने में खुशी होगी।

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