कुछ स्रोत फ़ाइल test.cpp दिए गए हैं, मैं एक साझा लाइब्रेरी libtest.so बनाना चाहता हूं। मैं इसे ऑटोमैक फ़ाइल के दायरे में करने की कोशिश कर रहा हूं, हालांकि मुझे यह काम करने के लिए प्रतीत नहीं होता है।एक स्वचालित लाइब्रेरी में एक साझा लाइब्रेरी (.so) कैसे बनाएं?
g++ -shared -fPIC test.cpp -o libtest.so
तो मैं इस प्रकार एक अन्य फ़ाइल है कि शेयर की गई लाइब्रेरी पर निर्भर करेगा बना सकते हैं::
g++ mytest.cpp libtest.so -o blah
मुझे लगता है कि पढ़ा है
जी के तहत उदाहरण के लिए ++ मैं तो निम्न कार्य करें automake केवल libtool के माध्यम से साझा पुस्तकालय बनाने का समर्थन करता है। मैंने अपने ऑटोमेक स्क्रिप्टिंग को निम्नानुसार काम करने की कोशिश की है, लेकिन ऐसा कभी नहीं लगता है। निकटतम मैं मिल गया है है यह एक .la और ओ फ़ाइल का उत्पादन करने के लिए:
configure.ac में:
AC_ENABLE_SHARED
AC_DISABLE_STATIC
AC_PROG_LIBTOOL(libtool)
Makefile.am
lib_LTLIBRARIES=libtest.la
libtest_la_SOURCES=test.cpp
libtest_la_CFLAGS=-fPIC
libtest_la_CPPFLAGS=-fPIC
libtest_la_CXXFLAGS=-fPIC
libtest_la_LDFLAGS= -shared -fPIC
किसी सका में मुझे उपरोक्त के आधार पर एक .so बनाने का एक उदाहरण दें?
आपको AC_PROG_LIBTOOL को LT_INIT –
बह के साथ प्रतिस्थापित करना चाहिए ... इसे लिखने के बाद मुझे एहसास हुआ कि उपर्युक्त वास्तव में मेरी स्रोत निर्देशिका की छिपी हुई .libs निर्देशिका में .so फ़ाइल बनाते हैं। उम्मीद है कि यह किसी और की मदद करता है जो इस बारे में चमत्कार करता है। – skimon
क्या कोई यहां फाइलों के पूर्ण उदाहरण पोस्ट कर सकता है? स्रोत फाइल नहीं, लेकिन config.ac और Makefile.am। मैं इस धागे में जानकारी का उपयोग करके यह काम नहीं कर सकता। –