2015-05-10 4 views
7

मैंने मिनीजीडब्ल्यू के लिए सीएमके का उपयोग करके एसएफएमएल संकलित किया। "Mingw32-make install" चलाने के बाद सबकुछ किसी भी त्रुटि के साथ बनाया और स्थापित किया गया है। लेकिन उदाहरणों को चलाने पर - pong.exe, sound.exe, sound-capture.exe और voip.exe सभी openal32.dll पर निर्भर करते हैं।एसएफएमएल स्थिर रूप से openal32 (सभी अन्य निर्भरताओं के लिए स्थिर रूप से लिंक) से लिंक नहीं कर रहा है

मैंने SFML_USE_STATIC_LIBS = true निर्दिष्ट किया जब सीएमके को कॉन्फ़िगर किया गया और उदाहरण निष्पादन योग्य की सभी अन्य निर्भरता केवल मूल विंडोज़ डीएलएस पर हैं।

क्या कोई यह समझा सकता है कि यह गतिशील रूप से openal32 से क्यों जुड़ा हुआ है (लेकिन कुछ भी नहीं)?

संपादित करें: मैं इस धागे http://en.sfml-dev.org/forums/index.php?topic=262.0 पर आया जो वास्तव में एक ही समस्या पर चर्चा कर रहा है। मैंने सोचा होगा (चूंकि यह 2008 से है) कि यह अब तक लागू किया गया होगा। या यह अभी भी एक ही स्थिति में है?

संपादित करें 2:http://en.sfml-dev.org/forums/index.php?topic=18119.0 पर प्रतिक्रियाएं इंगित करती हैं कि लाइसेंस के कारण ओपनएएल को गतिशील रूप से जोड़ा जाना चाहिए। क्या कोई पुष्टि कर सकता है कि लाइसेंस निष्पादन योग्य के साथ openal32.dll के वितरण की अनुमति देता है या नहीं?

उत्तर

3

मैं वकील नहीं हूं (और मैं कल रात एक लोकप्रिय होटल श्रृंखला में नहीं रहा था)।

OpenAL implementation they are usingGNU Library General Public License (LGPL), version 2 के तहत लाइसेंस प्राप्त है। LGPL वी 2 की आवश्यकता है कि:

आप पुस्तकालय के साथ एक कार्यक्रम से जोड़ने, तो आप पूरी वस्तु फ़ाइलों प्राप्तकर्ताओं को प्रदान करनी चाहिए, ताकि वे, पुस्तकालय के साथ उन्हें फिर से लिंक कर सकते हैं पुस्तकालय में परिवर्तन करने और इसे फिर कंपाइल करने के बाद। और आपको उन्हें इन शर्तों को दिखाना चाहिए ताकि वे अपने अधिकारों को जान सकें।

उपयोगकर्ताओं को एक संशोधित OpenAL पुस्तकालय के साथ एक बंद स्रोत खेल फिर से लिंक करने की अनुमति सबसे आसान तरीका है, कि खेल लिंक openal32.dll के साथ गतिशील रूप बनाना है। इस तरह, वे एक संशोधित एक के साथ openal32.dll को आसानी से स्वैप कर सकते हैं, और इसे अपने गेम निष्पादन योग्य के बगल में रखें।

लाइसेंस के इस हिस्से के लिए के रूप में:

और तुम ताकि वे अपने अधिकारों का पता उन्हें इन शर्तों दिखाना चाहिए।

बस अपने उपयोगकर्ताओं को सूचित करें कि आपका गेम ओपनएएल का उपयोग करता है, और किसी भी तरह उन्हें एलजीपीएल वी 2 टेक्स्ट के शरीर तक पहुंच प्रदान करता है।

आप अपने खेल के साथ openal32.dll वितरित कर सकते हैं, इन परिस्थितियों में:

उदाहरण के लिए, यदि आप पुस्तकालय की प्रतियां वितरित, या एक शुल्क के लिए मुक्त करने के लिए , आप प्राप्तकर्ताओं को सभी अधिकार देना चाहिए हमने आपको दिया था। आपको यह सुनिश्चित करना होगा कि वे भी कोड प्राप्त कर सकते हैं या प्राप्त कर सकते हैं।

यह केवल आपके उपयोगकर्ताओं को सूचित करके पूरा किया जा सकता है कि आपका गेम ओपनएएल का उपयोग करता है, और एक लिंक प्रदान करता है जहां वे स्रोत कोड डाउनलोड कर सकते हैं।

ओपनएएल के बारे में अपने अधिकारों के बारे में अपने उपयोगकर्ताओं को सूचित करने के लिए, आप इसे गेम के भीतर "इसके बारे में" पृष्ठ में या वितरित गेम मैनुअल के एक प्रस्ताव/परिशिष्ट में कर सकते हैं। उदाहरण के लिए:

  • OpenAL शीतल:

    इस खेल के बाद ओपन सोर्स सॉफ्टवेयर का उपयोग करता है http://openal-soft.org/

और तुम OpenAL के अपने उपयोगकर्ताओं को सूचित कर रहे हैं, आप कर सकते थे एसएफएमएल जैसे आपके गेम का उपयोग करने वाले अन्य ओपन-सोर्स लाइब्रेरीज़ को एट्रिब्यूशन देने के लिए स्वयंसेवक भी स्वयंसेवक हैं।

+0

उत्कृष्ट, धन्यवाद! मैं एलजीपीएल शर्तों के बारे में इसी तरह के निष्कर्षों पर आया था लेकिन आपके जवाब ने मेरे लिए चीजों को बेहद साफ कर दिया है। – Kvothe

+0

क्या इसका मतलब यह है कि यदि आप एलजीपीएल के तहत लाइसेंस प्राप्त लाइब्रेरी से स्थाई रूप से लिंक करना चाहते हैं तो आपको अपने स्रोत कोड द्वारा उत्पन्न ऑब्जेक्ट फाइलें बनाना होगा (लेकिन स्रोत कोड स्वयं नहीं) ताकि उपयोगकर्ता उन्हें एक साथ जोड़ सके स्थिर पुस्तकालय के विभिन्न संस्करण? – Kvothe

+1

यह सीधे एलजीपीएल लाइसेंस में सीधे कहता है: _ अगर आप लाइब्रेरी के साथ एक प्रोग्राम को लिंक करते हैं, तो आपको प्राप्तकर्ताओं को पूर्ण ऑब्जेक्ट फाइलें प्रदान करनी होंगी ताकि वे लाइब्रेरी में बदलाव करने और इसे पुन: संकलित करने के बाद लाइब्रेरी से जुड़ सकें। –

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