का उपयोग कर मैं कैसे
libgmp
पर गतिशील निर्भरता छोड़ सकते हैं और जाना इस से:स्थिरता लिंक जीएमपी GHC (+ LLVM)
इस (वर्तमान में आवश्यक होने पर) के लिएlinux-vdso.so.1 => (0x00007fffdccb1000) libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fb01afc1000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb01acc7000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fb01aabe000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb01a8ba000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb01a69d000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb01a2df000) /lib64/ld-linux-x86-64.so.2 (0x00007fb01b249000)
:
linux-vdso.so.1 => (0x00007fffdccb1000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb01acc7000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fb01aabe000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb01a8ba000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb01a69d000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb01a2df000) /lib64/ld-linux-x86-64.so.2 (0x00007fb01b249000)
एक स्वच्छ और पोर्टेबल तरीके से जो सभी जीएनयू/लिनक्स वितरण पर काम करता है (और बीएसडी (ओएस एक्स सहित) के साथ गड़बड़ नहीं कर रहा है)?
क्या आप अन्य जीएनयू/लिनक्स वितरण को लक्षित करने वाले एकल हास्केल बाइनरी को वितरित करते समय उपर्युक्त वांछित सूची में समस्याएं पैदा कर सकते हैं जो किसी अन्य निर्भरता को देख सकते हैं?
नोट्स:
- मेरे ऐप GPLv3 है तो कोई लाइसेंस उल्लंघन मुद्दों
libgmp.a
के पथ को निर्दिष्ट करना काम नहीं करता है (How to selectively link certain system libraries statically into Haskell program binary?) जीएमपी - के बारे में,
libgmp
अब भी है उत्पन्न होती हैंldd
आउटपुट में सूचीबद्ध है।
आपकी तैनाती प्रक्रिया कैसी है? विशेष रूप से आप अपने आवेदन के साथ libgmp तैनाती से क्या रोक रहा है? ओएसएक्स समेत बीएसडी पर गड़बड़ न करने का क्या मतलब है? आप ओएसएक्स और लिनक्स दोनों पर एक ही बाइनरी नहीं चला सकते हैं। – asm
@AndrewMyers मैं निर्माण के लिए Cabal का उपयोग करें। Libgmp तैनात करें? कैसे? मैं कम से कम विंडोज, लिनक्स, ओएस एक्स और फ्रीबीएसडी का समर्थन करना चाहता हूं। यदि मुझे अपने ऐप के साथ इसे तैनात करने के लिए प्रत्येक प्लेटफ़ॉर्म के लिए libgmp का एक साझा/गतिशील लाइब्रेरी संस्करण बनाना है, तो यह बहुत अधिक काम है। गड़बड़ नहीं: एक समाधान जो न केवल एक ओएस पर काम करता है; शायद किसी को 'libgmp का पता लगाने' जैसे कुछ का उपयोग करने का सुझाव देने और लिंक समय पर जो कुछ भी वापस आ सकता है और 'ओएस' अलग-अलग ओएस पर अलग-अलग व्यवहार करने का सुझाव दे रहा था। (जैसा कि आप चाहें वहां किसी भी अन्य टूल के साथ 'पता लगाएँ' को बदलें।) –
ऐसा लगता है कि आप एक बाइनरी तैनात करने के बारे में बात कर रहे हैं, जिसे आपको प्रत्येक प्लेटफ़ॉर्म के लिए बनाना होगा। चूंकि आपको प्रत्येक प्लेटफ़ॉर्म के लिए इसे बनाना है, इसलिए आपको प्रत्येक प्लेटफ़ॉर्म के लिए libgmp का संस्करण होना है, इसलिए आप इसे अपने बाइनरी से पैकेज कर सकते हैं। क्या मैं इस बारे में कुछ याद कर रहा हूं कि आप अपने आवेदन को वितरित करने की योजना बना रहे हैं? – asm