संकलित OpenGL कार्यक्रम (गुम GL / gl.h)


51

मैं एक पूर्ण लिनक्स / उबंटू नॉब हूं, इसलिए मैं इस प्रश्न के किसी भी गूंगे हिस्से के लिए माफी मांगता हूं या लोगों का अनुसरण करता हूं।

मैं एक प्रोग्राम प्राप्त करने की कोशिश कर रहा हूं जो मेरे सॉफ्टवेयर इंजीनियरिंग वर्ग के समूह ने मेरे घर के कंप्यूटर पर लिखा है। स्कूल में, हमारे पास लिनक्स है, और यह वहाँ ठीक संकलित और चलाएगा। मैंने VMWare डाउनलोड किया, उबंटू को एक वर्चुअल मशीन पर स्थापित किया, और अब मैं अपना प्रोग्राम खोलने की कोशिश कर रहा हूं।

जब भी मैं अपनी मेक फाइल चलाने की कोशिश करता हूं, तो मुझे एक त्रुटि मिलती है जो कहती है

gcc -I../include -pthread -O1 -c rain.c
In file included from rain.c:19:0:
../include/GL/glfw.h:176:21: fatal error: GL/gl.h: No such file or directory
compilation terminated.
make: *** [rain.o] Error 1

क्या किसी को पता चलेगा कि यह फाइल मेरे स्कूल के कंप्यूटर पर क्यों नहीं मिल सकती है? और मुझे इसे डाउनलोड करने या सही स्थान पर प्राप्त करने के लिए क्या करना होगा?

जवाबों:


83

मुझे लगता है कि आपके पास जो कुछ भी देव पैकेज नहीं है वह gl.h प्रदान करता है। apt-fileउपयोग करने के लिए कमांड लाइन उपकरण है।

पहले, सुनिश्चित करें कि यह अद्यतित है:

apt-file update

अब आप उत्तर के लिए एक खोज लिख सकते हैं "क्या पैकेज gl.h फ़ाइल प्रदान करता है?"

apt-file search "gl.h"

मेरे पास अभी चेक करने के लिए एक ubuntu बॉक्स नहीं है, लेकिन मुझे लगता है कि परिणाम मेसा-देव या ओपेंग्ल-देव की तरह होगा।

एक बार जब आप जानते हैं कि पैकेज "gl.h" क्या प्रदान करता है, (चलो apt-file से परिणाम का दिखावा करते हैं "libmesa-dev"), इसे स्थापित करें:

apt-get install libmesa-dev

आदेशों के उपयुक्त परिवार पर अधिक जानकारी: https://help.ubuntu.com/community/AptGet/Howto


सहायता के लिए धन्यवाद। मैंने आपके द्वारा सुझाए गए और खोज के आउटपुट के साथ मूल पोस्ट को अपडेट करने की कोशिश की।
सेलेडम

बस इसके साथ खेलने का फैसला किया और मेसा-आम-देव पैकेज डाउनलोड किया। तब मैंने usr / में शामिल / GL फ़ोल्डर में नेविगेट किया और पाया कि यह वहां था। मैं बस अपनी परियोजना के फ़ोल्डर में कॉपी / पेस्ट किया और यह काम करने लगा। लेकिन तब मेरी परियोजना एक त्रुटि दे रही थी कि इसे "glu.h" फ़ोल्डर की आवश्यकता थी, इसलिए मैंने libcgal-dev पैकेज डाउनलोड किया, और कॉपी / पेस्ट के साथ भी यही काम किया। सही फोल्डर में डालने के बाद, और मेक कमांड चलाने के बाद, प्रोजेक्ट कंपाइल होता है और चलेगा। इसलिए मदद के लिए बहुत-बहुत धन्यवाद। अब मुझे बस ग्राफिक्स को धीमा करने की आवश्यकता है। :)
शायद dom

खुशी है कि आपको काम करने के लिए निर्माण मिला! आपकी कॉपी / पेस्ट त्वरित और गंदा है, लेकिन ठीक से, आपके शामिल गलत हो सकता है। मैं ज्यादा सी ++ नहीं जानता, लेकिन स्रोत से कुछ पैकेज को संकलित करने में इसी तरह की समस्या थी। समाधान, iirc, बदल रहा है की तरह था #include <gl.h>करने के लिए #include<gl/gl.h>
djikybb

21
ओह, आदमी ने मुझे पैकेज का नाम देने के बजाय मुझे मछली सिखाने के लिए बहुत धन्यवाद दिया!
ब्रायन कैन

2
Apt-file की जानकारी के लिए धन्यवाद। GL / gl.h के लिए आवश्यक पैकेज के बारे में, यह है: mesa-common-dev (कम से कम Ubuntu 16.04 के लिए)
ElazarR

36

GL/gl.hउपयोग के लिए:

sudo apt install mesa-common-dev

आपको ये मददगार भी मिल सकते हैं, कहते हैं GL/glu.h:

sudo apt install libglu1-mesa-dev freeglut3-dev

तुम भी शामिल करना चाहते हो सकता हैlibglfw3-dev libgles2-mesa-dev
rustyx

1

तुम भी glproto ( लिंक ), libdrm ( लिंक ), और फिर स्रोत से mesa ( लिंक ) का निर्माण कर सकते हैं । हालांकि कई अन्य पैकेजों में यह हेडर फ़ाइल हो सकती है, लेकिन स्रोत पर जाना महत्वपूर्ण है। यह आपके इंस्टॉलेशन की मेमोरी फ़ुटप्रिंट को कम करेगा और सुनिश्चित करेगा कि आपके पास नवीनतम और / या सबसे बड़ा संस्करण हो।

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