यह प्रश्न this one से संबंधित है और इसके उत्तर से संबंधित है।साझा लाइब्रेरी में पीआईसी और गैर-पीआईसी वस्तुओं को मिलाकर
मैंने अभी एक ऐसे निर्माण में कुछ कुरूपता की खोज की है जिस पर मैं काम कर रहा हूं। स्थिति कुछ हद तक निम्न दिखती है (जीएमके प्रारूप में लिखी गई); ध्यान दें, यह विशेष रूप से स्पार्क और 86 हार्डवेयर पर एक 32-बिट स्मृति मॉडल पर लागू होता है:
OBJ_SET1 := some objects
OBJ_SET2 := some objects
# note: OBJ_SET2 doesn't get this flag
${OBJ_SET1} : CCFLAGS += -PIC
${OBJ_SET1} ${OBJ_SET2} : %.o : %.cc
${CCC} ${CCFLAGS} -m32 -o ${@} -c ${<}
obj1.o : ${OBJ_SET1}
obj2.o : ${OBJ_SET2}
sharedlib.so : obj1.o obj2.o
obj1.o obj2.o sharedlib.so :
${LINK} ${LDFLAGS} -m32 -PIC -o ${@} ${^}
जाहिर है यह एक साझा वस्तु में साथ और पीआईसी के बिना संकलित वस्तुओं मिश्रण (इस प्रयोग में वर्षों के लिए किया गया है) काम कर सकते हैं । मुझे यह जानने के लिए पीआईसी के बारे में पर्याप्त जानकारी नहीं है कि यह एक अच्छा विचार/स्मार्ट है, और मेरा अनुमान इस मामले में है, इसकी आवश्यकता नहीं है, बल्कि यह हो रहा है क्योंकि किसी को सामना करने के दौरान सही तरीके से पता लगाने के लिए पर्याप्त परवाह नहीं है निर्माण के लिए नई चीजों पर।
मेरा प्रश्न है:
- इस सुरक्षित
- यह एक अच्छा विचार
- क्या संभावित समस्याओं परिणामस्वरूप
- के रूप में हो सकता है मैं पीआईसी के लिए सब कुछ स्विच करते हैं, वहाँ किसी भी गैर हैं -बेशक गेटचास जिन्हें मैं देखना चाहता हूं।