im जी ++ का उपयोग कर एक विंडोज़ cygwin मंच पर एक साझा पुस्तकालय का निर्माण, और बाद में एक और सीपीपी फ़ाइल से लिंक करने की कोशिश कर: मैं निम्न कमांड का उपयोग करें:इमारत और एक साझा पुस्तकालय जोड़ने
// generate object file
g++ -g -c -Wall -fPIC beat11.cpp -o beat11.o
// to generate library from the object file
g++ -shared -Wl,-soname,libbeat.so.1 -o libbeat.so.1.0.1 beat11.o -lc
// to link it with another cpp file; -I option to refer to the library header file
g++ -L. -lbeat -I . -o checkbeat checkbeat.cpp
जबकि जोड़ने, निम्न त्रुटि अप फसलों:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld:
cannot find -llibbeat.so.1.0.1
collect2: ld returned 1 exit status
पुस्तकालय ठीक बनाया जाता है, लेकिन मैं केवल libbeat.so.1.0.1 पा सकते हैं, libbeat.so या libbeat.so.1 नहीं (या वे करने के लिए नहीं जा सकते वहाँ रहें?)
अन्य प्रश्नों में से एक libbeat.so.1.0.1 करने के लिए एक सिमलिंक बनाने का सुझाव है, लेकिन वह भी काम नहीं किया
मुझे एक ही समस्या थी और आपकी टिप्पणी का उपयोग -l: libname.so ने किया था। हालांकि, मैं वास्तव में समझ में नहीं आता कि यह एल --lname के साथ क्यों काम नहीं करता है जैसा कि आपने कहा था कि लिंकर को lib भी खोजना चाहिए। यह भी मेरी समझ थी कि इसे काम करना चाहिए लेकिन कम से कम साइगविन के साथ यह मामला प्रतीत नहीं होता है। अन्य compilers के साथ कोशिश नहीं की है। –
Devolus
यहां दिए गए उत्तर ने मेरी मदद की: http://stackoverflow.com/questions/16154130/cygwin-g-linker-doesnt-find-shared-library – solstice333