รวบรวมโปรแกรม OpenGL (ไม่มี GL / gl.h)


51

ฉันเป็น noob Linux / Ubuntu ที่สมบูรณ์ดังนั้นฉันจึงขออภัยในส่วนที่โง่ของคำถามนี้หรือติดตาม

ฉันกำลังพยายามหาโปรแกรมที่กลุ่มวิศวกรรมซอฟต์แวร์ของฉันเขียนไว้ในคอมพิวเตอร์ที่บ้าน ที่โรงเรียนเรามี Linux และมันจะรวบรวมและทำงานได้ดีที่นั่น ฉันดาวน์โหลด VMWare ติดตั้ง Ubuntu บนเครื่องเสมือนและตอนนี้ฉันกำลังพยายามเปิดโปรแกรมของฉัน

เมื่อใดก็ตามที่ฉันพยายามเรียกใช้ไฟล์ทำของฉันฉันได้รับข้อผิดพลาดที่ระบุว่า

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

ฉันเดาว่าคุณไม่มีแพ็คเกจ dev ที่ให้ gl.h apt-fileเป็นเครื่องมือบรรทัดคำสั่งที่จะใช้

ก่อนอื่นตรวจสอบให้แน่ใจว่าเป็นข้อมูลล่าสุด:

apt-file update

ตอนนี้คุณสามารถเขียนการค้นหาเพื่อตอบ "แพคเกจใดให้ไฟล์ gl.h"

apt-file search "gl.h"

ตอนนี้ฉันไม่มีกล่องอูบุนตูเพื่อตรวจสอบ แต่ฉันเดาว่าผลลัพธ์จะเป็นเช่น mesa-dev หรือ opengl-dev

เมื่อคุณรู้ว่าแพ็คเกจใดที่ให้ "gl.h" (ลองทำผลลัพธ์จาก apt-file คือ "libmesa-dev") ติดตั้ง:

apt-get install libmesa-dev

ข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งตระกูล apt: https://help.ubuntu.com/community/AptGet/Howto


ขอบคุณสำหรับความช่วยเหลือ ฉันลองสิ่งที่คุณแนะนำและอัปเดตโพสต์ต้นฉบับด้วยผลลัพธ์ของการค้นหา
ไม่ค่อย

ตัดสินใจที่จะเล่นกับมันและดาวน์โหลดแพ็คเกจ mesa-common-dev จากนั้นฉันจัดการเพื่อนำทางไปยังโฟลเดอร์ usr / include / GL และพบว่ามันอยู่ที่นั่น ฉันย้ายเพิ่งคัดลอก / วางลงในโฟลเดอร์ของโครงการและดูเหมือนว่าจะทำงาน แต่โครงการของฉันให้ข้อผิดพลาดว่าต้องการโฟลเดอร์ "glu.h" ดังนั้นฉันจึงดาวน์โหลดแพคเกจ libcgal-dev และทำสิ่งเดียวกันกับการคัดลอก / วาง หลังจากวางสิ่งนั้นลงในโฟลเดอร์ที่ถูกต้องและรันคำสั่ง make โปรเจ็กต์จะคอมไพล์และจะรัน ขอบคุณมากสำหรับความช่วยเหลือ ตอนนี้ฉันแค่ต้องการให้กราฟิกทำงานช้าลง :)
ไม่ค่อย

ดีใจที่คุณมีงานสร้าง! การคัดลอก / วางของคุณนั้นรวดเร็วและสกปรก แต่อย่างถูกต้องการรวมของคุณอาจผิด ฉันไม่รู้ c ++ มาก แต่มีปัญหาคล้ายกันในการคอมไพล์แพ็กเกจจากซอร์สโค้ด วิธีการแก้ปัญหา iirc เป็นเช่นการเปลี่ยนไป#include <gl.h> #include<gl/gl.h>
djeikyb

21
โอ้มนุษย์ขอบคุณมากสำหรับการสอนให้ฉันตกปลาแทนที่จะให้ชื่อของแพ็คเกจ!
Brian Cain

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 ( ลิงก์ ) จากแหล่งที่มา แม้ว่าแพ็คเกจอื่น ๆ อาจมีไฟล์ส่วนหัวนี้อยู่ก็ตาม แต่สิ่งสำคัญคือต้องไปที่แหล่งที่มา สิ่งนี้จะลดขนาดหน่วยความจำของการติดตั้งของคุณและให้แน่ใจว่าคุณมีรุ่นล่าสุดและ / หรือรุ่นที่ยิ่งใหญ่ที่สุด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.