64-बिट पर 32-बिट एप्लिकेशन को संकलित करना, -lX11 नहीं खोज सकता


9

मैं एक कमांड दे रहा हूँ जैसे:

g++ ... -o"myapp" -lX11 ...

और हो रही है

/usr/bin/ld: cannot find -lX11

मैंने मल्टीकोर का समर्थन करने के लिए निम्नलिखित पैकेज स्थापित किए हैं:

ia32-libs, libc6-dev-i386 and g++-multilib

लेकिन कोई फायदा नहीं हुआ। वहाँ कोई X11.so / usr / lib32 प्रतीत नहीं होता है, वास्तव में उस निर्देशिका में केवल 52 पुस्तकालय हैं। मैं इस धारणा के तहत हूं कि आपको मैन्युअल रूप से लाइब्रेरी स्थापित करनी चाहिए, लेकिन मैं एक नुकसान में हूं कि मुझे आगे क्या देखना चाहिए।

किसी भी मदद की सराहना की।


1
क्या आप कमांड का आउटपुट दिखा सकते हैं ldconfig -p | grep libX11\\.?
मार्टिन डिरिक्स

जवाबों:


5

आपको हेडर फ़ाइलों की आवश्यकता है, जो -devपैकेजों द्वारा प्रदान की जाती हैं, और लाइब्रेरी पैकेजों में स्वयं नहीं। इसलिए, स्थापित करने का प्रयास करें libx11-dev। इस विशेष बिल्ड त्रुटि को ठीक करना चाहिए, हालाँकि आपको अन्य लाइब्रेरीज़ के बारे में समान त्रुटियाँ मिल सकती हैं (और फिर आप उनके -devपैकेजों को स्थापित कर सकते हैं।)

भले ही ये पैकेज बायनेरिज़ के बजाय हेडर फ़ाइल प्रदान करते हैं, और सामान्य हेडर फ़ाइलों में प्रीप्रोसेसर मैक्रोज़ के उपयोग के माध्यम से सभी समर्थित आर्किटेक्चर के लिए खाता है, फिर भी -devउबंटू में नॉन पैकेज आर्किटेक्चर-विशिष्ट होते हैं, और यह मामला है libx11-dev(जैसा कि देखा जा सकता है) यहाँ एक रिलीज़ का विस्तार करके और उस रिलीज़ के .debलिए सूचीबद्ध पैकेजों libx11-devको खोजकर)। चूंकि आपका उबंटू सिस्टम 64-बिट है और आप एक 32-बिट प्रोग्राम को संकलित कर रहे हैं, जो कि लाइब्रेरी के 32-बिट संस्करण के खिलाफ लिंक होना चाहिए, आपको संभवतः 32-बिट संस्करण स्थापित करना होगा libx11-dev। यदि आप के साथ स्थापित कर रहे हैं apt-getया aptitude, आप निर्दिष्ट कर सकते हैं कि libx11-dev:i386पैकेज के रूप में इंगित करके ( मल्टीकार के बाद से ) समर्थित है और इस्तेमाल किया जा रहा है)।

http://packages.ubuntu.com/-dev लाइब्रेरी पैकेज के अनुरूप पैकेज का नाम खोजने के लिए एक अच्छा संसाधन है । यह हमेशा लाइब्रेरी पैकेज का नाम नहीं है -dev, इसके तुरंत बाद ; लाइब्रेरी पैकेज नाम में मौजूद कभी-कभी संस्करण संख्याएँ, विशेष रूप से ए के बाद -, संबंधित पैकेज के नाम से अनुपस्थित होती हैं-dev

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.