Qt: -LGL त्रुटि नहीं ढूँढ सकता


109

मैंने अभी-अभी QtCreator को फिर से स्थापित किया, नए प्रोजेक्ट ( Qt Application ) को तैयार किया, संकलन के बाद यह मिला:

/usr/bin/ld: **cannot find -lGL**
collect2: error: ld returned 1 exit status
make: *** [untitled1] Error 1
18:07:41: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 GCC 32bit)
When executing step 'Make'

( परियोजना खाली है, मैंने कोई बदलाव नहीं किया है )

Qt निर्माता 2.7.2
Qt 5.1.0 (32 बिट)
Ubuntu 13.04 पर आधारित है

मैं इस समस्या का समाधान कैसे कर सकता हूं।


क्या आपके पास opengl स्थापित है?
lpapp


जवाबों:


157

आपको पैकेज "libgl1-mesa-dev" स्थापित करना चाहिए:

sudo apt install libgl1-mesa-dev

6
यह सही उत्तर कैसे है? आपको लाइब्रेरी के खिलाफ लिंक का उपयोग क्यों नहीं करना चाहिए? लिंकर फ़्लैग नहीं होना चाहिए -lGL?
Cuadue

6
@ काड्यू: त्रुटि में जीएल और libgl1 -... में ओपनजीएल के लिए है, क्यूआर 5.x का एक मौलिक निर्भरता है। क्यूटी विकास के लिए स्थापित करते समय देवों के लिए यह एक सामान्य त्रुटि है - लेकिन एक बार जब वे ओएनजीएल विकास कार्य स्थापित करते हैं तो वे इसे फिर कभी नहीं देखते हैं।
पिक्सेलग्रेज़

उबंटू 20.04 जहाजों के साथ आवश्यक ओपनजीएल लाइब्रेरीज़, किसी भी पैकेज को स्थापित करने के लिए आवश्यक नहीं है, आपको बस ln/ usr / lib में लिंक बनाने के लिए उपयोग करने की आवश्यकता है , डिस्ट्रान के उत्तर देखें , 20.04 पैकेज को इसमें कुछ भी उपयोगी नहीं लगता है।
jrh

75

आपको कुछ भी स्थापित करने की आवश्यकता नहीं है। libGLपहले से ही उबंटू के साथ स्थापित है, आपको बस इसे लिंक करने की आवश्यकता है। (ubuntu 14.x और 15.x के लिए परीक्षण किया गया, बाद के संस्करणों के लिए काम कर सकता है)

  1. पहले GL लाइब्रेरी का पता लगाएं
  2. फिर इसे / usr / lib के तहत लिंक करें
  3. यदि पुस्तकालय गायब है, तो यह libgl1-mesa-dev पैकेज के माध्यम से स्थापित किया जा सकता है

यहाँ है कि आप यह कैसे कर सकते हैं:

$ locate libGL
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2.0.0
$ sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so

1
हां, यह काम करता है। ldconfigइस मामले में साझा पुस्तकालयों से निपटने के बाद चलना आम तौर पर एक अच्छा विचार है ।
जोस टॉमस टोिनो

जवाब के लिए धन्यवाद! एंड्रॉइड एसडीके, स्टीम और अन्य अनुप्रयोगों के कारण मेरे सिस्टम पर मेरे पास कई एफबीआईजीएल थे। मूल mesa फ़ोल्डर भी फ़ोल्डर में मौजूद था i386-linux-gnu। इस उत्तर को पढ़ने वाले किसी भी व्यक्ति के लिए, आप उबंटू में डिफ़ॉल्ट रूप से स्थापित लाइब्रेरी को आसानी से चलाकर पता लगा सकते हैं locate libGL | grep mesaऔर फिर sudo lnइस उत्तर में बताई गई अंतिम कमांड को सही स्थान के साथ बदल सकते हैं ।
आकाश अग्रवाल

1
इसने मेरे लिए उबंटू 16.10 पर काम किया, लेकिन मैं उलझन में हूं कि क्या यह अब ओपनजीएल प्रतिपादन के लिए एनवीडिया जीपीयू का उपयोग कर रहा है, या / रेंडरर के रूप में?
डेविड जेएन

यह उत्तर pkg-config प्रश्न को हल करने के लिए प्रतीत नहीं होता है, क्या यह? IE: यदि आपके पास pkg-config -libs का उपयोग करने के लिए qt बिल्ड लाइनें हैं, तो यह समाधान GL के लिए कुछ भी नहीं लौटाएगा? सुरक्षित पक्ष पर होने के लिए, मैंने बस मेसा-देव को स्थापित किया।
एलेक्स समर

3
आप सर, कुकी के लायक नहीं हैं, जो मैन-टिक नहीं थे
djangodude

3

गुई Qt मॉड्यूल डिफ़ॉल्ट रूप से शामिल है । यदि आप इसे किसी परियोजना में उपयोग नहीं करना चाहते हैं (जैसे, यह एक पुस्तकालय है या केवल stdio का उपयोग करता है), तो आपको उसे .pro फ़ाइल में निर्दिष्ट करने की आवश्यकता है।

QT -= gui

और लिंकर यह स्थापित करने की परवाह किए बिना lGL खोजने का प्रयास नहीं करेगा।

मेरा मामला स्वाभाविक रूप से थोड़ा अजीब है, क्यूटी का उपयोग करने का मुख्य कारण गुई का निर्माण करना है। जीएल लाइब्रेरी स्थापित करना निश्चित रूप से मुश्किल नहीं है, मैं सिर्फ यह जानना चाहता था कि मेरी त्वरित और गंदी हैलो वर्ल्ड क्यों चाहती थी।




1

मेरा सिस्टम Ubuntu 16.04 x86 कंप्यूटर (NVIDIA GeForce GPU के साथ) पर है।

में स्थित पुस्तकालय फ़ाइलों की जाँच करें /usr/lib/x86_64-linux-gnu

ls -al /usr/lib/x86_64-linux-gnu/libG*

यदि आप टूटी हुई लिंक देखते हैं, तो पुनर्स्थापित करें libgl1-mesa-glx

sudo apt install --reinstall libgl1-mesa-glx

और, लाइब्रेरी को रीचेक करें।


0

मेरे मामले में: मैंने Win10 64 बिट में क्यूटी 32 बिट लिब को स्थापित किया है और यह त्रुटि में चला गया है, मैं सभी 64 बिट में बदल जाता हूं और क्यूटी निर्माता आसानी से चलता है।


-1

एक मिनट पहले ही इस समस्या का समाधान किया। बस नीचे दिए गए चरण को करें और QTCreator को ठीक काम करना चाहिए।

sudo zypper इनस्टॉल पैटर्न devel_basis स्थापित करता है

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