मैंने this postमिनीजीडब्ल्यू में तीसरे पक्ष के पुस्तकालयों को कैसे जोड़ा जाए?
पर तीसरे पक्ष के पुस्तकालयों को जोड़ने के लिए अभी तक मिनीजीडब्ल्यू पर्यावरण स्थापित किया है?
मैंने this postमिनीजीडब्ल्यू में तीसरे पक्ष के पुस्तकालयों को कैसे जोड़ा जाए?
पर तीसरे पक्ष के पुस्तकालयों को जोड़ने के लिए अभी तक मिनीजीडब्ल्यू पर्यावरण स्थापित किया है?
एक पुस्तकालय में दो मुख्य घटक होते हैं - सी हेडर फ़ाइलें और संकलित ऑब्जेक्ट कोड संग्रह। जीसीसी के पास इन चीजों को निर्दिष्ट करने के तरीकों की एक विचित्र श्रृंखला है, लेकिन मान लें कि आप लाइब्रेरी 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 पथ में भी जोड़ सकते हैं, लेकिन फिर चीजें जटिल होने लगती हैं :-)
gcc
और अब अपना नया उपयोग करें उचित -Lfoo/bar -lfoobar
स्विच के साथ लाइब्रेरी।
मैं यह सब करने के लिए सिस्टम MinGW के आसपास सिस्टम की अनुशंसा करता हूं।
ओह, मैं यह उल्लेख करना भूल गया कि मैं विंडोज एक्सपी का उपयोग कर रहा हूं, क्या आप विवरण के बारे में अधिक विशिष्ट हो सकते हैं? – user198729
यूनिक्स उपकरण के साथ कोड विकास के बारे में आपको एक पुस्तक (या वेब ट्यूटोरियल) की आवश्यकता है। यहां कुछ भी नहीं है जो विंडोज एक्सपी के लिए विशिष्ट है --- इस तथ्य के अलावा कि आप वर्कफ़्लो सीखने की कोशिश कर रहे हैं जो विंडोज पर आम नहीं है। आप यहां सही काम कर रहे हैं, लेकिन यह जानने के लिए कि यह एक्सपी पर कैसे किया जाता है, यह जानने के लिए लिनक्स/यूनिक्स पर यह कैसे कम या कम काम करता है। बस कहीं एक सभ्य ट्यूटोरियल ढूंढें ... –
मैं बस इसे स्वयं समझने के माध्यम से चला गया। मैं MingW वेबपृष्ठ पर linking howtos पढ़ने की दृढ़ता से अनुशंसा करता हूं। उन्हें ध्यान से पढ़ें क्योंकि इसमें काफी कुछ है। वे काफी अच्छी तरह से हैं हालांकि यह आपके समय के लायक है।
चीजें करने के अनिवार्य रूप से दो तरीके हैं। सबसे पहले, आप केवल MinGW को एक कंपाइलर के रूप में देख सकते हैं, क्योंकि यह वही है, और इसे cmd.exe (कमांड प्रॉम्प्ट) या आईडीई से आमंत्रित करें। ऐसा करने का दूसरा तरीका एमएसवाईएस का उपयोग करना है जो मूल रूप से यूनिक्स स्टाइल शैल है जिसे आप विंडोज़ पर यूनिक्स स्टाइल बिल्ड टूल्स जैसे कॉन्फ़िगर और बनाने के लिए चला सकते हैं।
इनमें से किसी एक के लिए आपको वास्तव में यह समझना होगा कि मैं कैसे ऊपर से जुड़ा हुआ हूं यह समझने के लिए कि निर्भरता पथ कैसे खोजे जा रहे हैं। मैं इसे यहां समझाने में संकोच करता हूं क्योंकि यह पहले से ही हाउटोस और डुप्लिकेट में समझाया गया है कि जानकारी एक अच्छा विचार नहीं है। यदि आपके पास पढ़ने के बाद आपके पास विशिष्ट प्रश्न हैं तो मुझे और सहायता प्रदान करने में खुशी होगी।
+ 1, यह सहायक है! लेकिन क्या आप इसे अधिक सामान्य बना सकते हैं? कहें कि क्या मैं दो पुस्तकालयों को दो अलग-अलग निर्देशिकाओं से शामिल करना चाहता हूं। बीटीडब्ल्यू, ऐसा लगता है कि प्रत्येक पुस्तकालय में * .h और * एए, कम से कम मैं केवल * .a और * देखता हूं।ओ MinGW/lib के तहत? – user198729
अधिक निर्दिष्ट करने के लिए पथ शामिल करें, अधिक पुस्तकालयों को निर्दिष्ट करने के लिए अधिक II ध्वज का उपयोग करें, उन्हें कमांड लाइन पर निर्दिष्ट करें। दिन के अंत में, एसओ एक ट्यूटोरियल साइट नहीं है - जीसीसी मैनुअल और स्पष्ट रूप से एक किताब, जैसे http://www.network-theory.co.uk/gcc/intro पढ़ें। –