की निर्भरता मैं एक छोटे से क्यूटी (C++) लिनक्स पर जीयूआई आवेदन का निर्माण करने की कोशिश कर रहा हूँ से जोड़ने के लिए, लेकिन यह, कई लिंकर त्रुटियों के साथ निर्माण करने के लिए क्यूटी पुस्तकालय मैं रूप से लिंक हो रहा निर्भरता लापता के बारे में शिकायत विफल रहता है। मैंने क्यूटी पुस्तकालयों पर यह पता लगाने के लिए कि पुस्तकालय वास्तव में वहां हैं - और वे हैं।कैसे स्वचालित रूप से साझा पुस्तकालय
मेरे समस्या इस सूत्र में चर्चा करने के लिए संबंधित प्रतीत होती है: Linking dependencies of a shared library और जब कि धागा मुझे मेरे सटीक समस्या की पहचान में मदद की, ऐसा लगता है कि धागे के निष्कर्ष था कि कि अपने आवेदन लिंक करना चाहिए!
आवेदन निम्न आदेश के साथ संकलित किया गया है:
g++ -m64 -Wl,-O1 -o Executable some-object.o some-other-object.o -lQtCore -lQtGui -lQtXml -L/usr/lib64 -L/usr/X11R6/lib64 -lpthread
चल रहा है इस निम्न प्रपत्र की चेतावनी उत्पन्न करता है, और जोड़ने अंत में ('लापता' पुस्तकालयों में परिभाषित प्रतीकों के लिए) अपरिभाषित संदर्भ त्रुटियों के साथ विफल रहता है:
.../ld: warning: libglib-2.0.so.0, needed by /usr/lib64/libQtGui.so, not found (try using -rpath or -rpath-link)
.../ld: warning: libpng14.so.14, needed by /usr/lib64/libQtGui.so, not found (try using -rpath or -rpath-link)
.../ld: warning: libz.so.1, needed by /usr/lib64/libQtGui.so, not found (try using -rpath or -rpath-link)
.../ld: warning: libfreetype.so.6, needed by /usr/lib64/libQtGui.so, not found (try using -rpath or -rpath-link)
और इतने पर (कुल 18 निर्भरता कि पाया नहीं जा सका है।)
मैं प्राप्त कर सकते हैं इस संकलन अगर मैं जाओ और स्पष्ट रूप से जोड़ें -lglib, -lpng14, -lz -lfreetype और इसी तरह, लेकिन जैसा कि मैंने बताया है कि 18 निर्भरताएं हैं - और मैं ऐसा नहीं करूँगा। ऐसा लगता है कि मुझे इसे नहीं करना चाहिए।
मैं जो किसी भी मुसीबतों के बिना ठीक उसी Linux distro (openSUSE 12.2) का उपयोग करता है अपने लैपटॉप कंप्यूटर पर एक ही परियोजना तैयार की है। क्यूटी समेत सभी पुस्तकालयों को डिस्ट्रो रिपोजिटरी से स्थापित किया गया था।
मुझे लगता है कि यह मेरा OpenSUSE पर सेटअप समस्या स्थापित किसी प्रकार का हो सकता है, लेकिन मैं जहां इसे ठीक करने के लिए देख शुरू करने के लिए पता नहीं है।
चीयर्स, क्रेग
कुछ मैं मानता हूँ कि यह बस आप सभी निर्भर पुस्तकालयों जोड़े बिना काम करना चाहिए कर सकते हैं। मुझे किसी प्रकार की प्रणाली गलत कॉन्फ़िगरेशन पर संदेह होगा। शायद टूलचेन के टुकड़े को पुनर्स्थापित करना, जैसे कंपाइलर और बिनुटिल्स, मदद कर सकते हैं ...? –
यस्ट का उपयोग करके मैंने binutils को हटा दिया, फिर gcc टूल्स को पुनर्स्थापित किया और अब यह काम करता है। आपके जवाब के लिए धन्यवाद। –