इस प्रश्न का शीर्षक exact dupe है, लेकिन उस प्रश्न के उत्तर में मेरी मदद नहीं है।एक साझा लाइब्रेरी में एक साझा लाइब्रेरी को कनवर्ट करें (libsome.a से libsome.so बनाएं): मेरे प्रतीक कहां हैं?
% g++ -std=c++98 -fpic -g -O1 -c -o foo.o foo.cpp
% g++ -std=c++98 -fpic -g -O1 -c -o bar.o bar.cpp
% ar -rc libsome.a foo.o bar.o
मैं बजाय वस्तु फ़ाइलों के libsome.a से libsome.so उत्पन्न करने के लिए चाहते हैं, लेकिन पुस्तकालय वास्तव में है:
मैं एक स्थिर पुस्तकालय में पैक वस्तु फ़ाइलों का एक समूह है barebones:
% g++ -std=c++98 -fpic -g -O1 -shared -o libsome.so libsome.a
% nm -DC libsome.so
0000xxxx A _DYNAMIC
0000xxxx A _GLOBAL_OFFSET_TABLE_
w _Jv_RegisterClasses
0000xxxx A __bss_start
w __cxa_finalize
0000xxxx A _edata
0000xxxx A _end
0000xxxx T _fini
0000xxxx T _init
स्थिर पुस्तकालय ठीक है, या कम से कम मैं पूरी तरह से एक निष्पादन से लिंक कर सकती हूं और यह निहित कार्यक्षमता को चलाने की है। भी, सब ठीक है अगर मैं libsome बनाते हैं। तो foo.o और bar.o से।
+1 वहां आप जाते हैं। मैंने "मैन एलडी" की कोशिश की और उसे याद किया। –
धन्यवाद, यह है! मैंने एलडी मैनपेज को ऊपर और नीचे खोजा है, लेकिन किसी भी तरह से इस विकल्प को याद किया है। –
अब अगर केवल यह उत्कृष्ट उत्तर यह संकेत देना था कि इसे सीएमके परियोजना के साथ कैसे सेट अप करें! धन्यवाद –