Kompilasi Program OpenGL (Missing GL / gl.h)

50

Saya adalah Linux / Ubuntu noob yang lengkap, jadi saya minta maaf atas bagian bodoh dari pertanyaan ini atau yang ditindaklanjuti.

Saya mencoba untuk mendapatkan sebuah program yang ditulis kelompok kelas rekayasa perangkat lunak saya ke komputer di rumah saya. Di sekolah, kami memiliki Linux, dan itu akan dikompilasi dan berjalan dengan baik di sana. Saya mengunduh VMWare, menginstal Ubuntu pada mesin virtual, dan sekarang saya mencoba untuk membuka program saya.

Namun ketika saya mencoba menjalankan file make saya, saya mendapatkan kesalahan yang mengatakan

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

Adakah yang tahu mengapa tidak dapat menemukan file ini, ketika itu bisa di komputer sekolah saya? Dan apa yang harus saya lakukan untuk mengunduhnya atau mendapatkannya di tempat yang tepat?

Jarang
sumber

Jawaban:

84

Saya kira Anda tidak memiliki paket dev apa pun yang menyediakan gl.h. apt-fileadalah alat baris perintah untuk digunakan.

Pertama, pastikan itu mutakhir:

apt-file update

Sekarang Anda dapat menulis pencarian untuk menjawab "paket apa yang menyediakan file gl.h?"

apt-file search "gl.h"

Saya tidak punya kotak ubuntu untuk memeriksa, tapi saya kira hasilnya akan seperti mesa-dev atau opengl-dev.

Setelah Anda tahu paket apa yang menyediakan "gl.h", (mari kita berpura-pura bahwa hasil dari apt-file adalah "libmesa-dev"), instal:

apt-get install libmesa-dev

Info lebih lanjut tentang keluarga perintah yang tepat: https://help.ubuntu.com/community/AptGet/Howto

djeikyb
sumber
Terima kasih untuk bantuannya. Saya mencoba apa yang Anda sarankan dan memperbarui posting asli dengan hasil pencarian.
Jarang
Memutuskan untuk hanya bermain-main dengannya dan mengunduh paket mesa-common-dev. Kemudian saya berhasil menavigasi ke folder usr / include / GL dan menemukan bahwa folder itu ada di sana. Saya pindah hanya menyalin / menempelkannya ke folder proyek saya dan sepertinya berhasil. Tetapi kemudian proyek saya memberikan kesalahan bahwa ia membutuhkan folder "glu.h", jadi saya mengunduh paket libcgal-dev, dan melakukan hal yang sama dengan copy / paste. Setelah meletakkan itu di folder yang benar, dan menjalankan perintah make, proyek mengkompilasi dan akan berjalan. Jadi terima kasih banyak atas bantuannya. Sekarang saya hanya perlu untuk memperlambat grafis. :)
Jarang
Senang Anda berhasil membangunnya! Salinan / tempel Anda adalah yang cepat dan kotor, tetapi yang benar, menyertakan Anda mungkin salah. Saya tidak tahu banyak c ++, tetapi memiliki masalah yang sama mengkompilasi beberapa paket dari sumber. Solusi, iirc, seperti berubah #include <gl.h>menjadi #include<gl/gl.h>.
djeikyb
21
Oh, terima kasih banyak sudah mengajari saya memancing, bukan hanya memberi saya nama paket!
Brian Cain
2
Terima kasih atas info tentang file-apt. Mengenai paket yang diperlukan untuk GL / gl.h, itu adalah: mesa-common-dev (setidaknya untuk Ubuntu 16.04)
ElazarR
37

Untuk GL/gl.hpenggunaan:

sudo apt install mesa-common-dev

Anda juga dapat menemukan ini bermanfaat, untuk, katakanlah GL/glu.h,:

sudo apt install libglu1-mesa-dev freeglut3-dev
Richard
sumber
Anda mungkin juga ingin memasukkanlibglfw3-dev libgles2-mesa-dev
rustyx
1

Anda juga dapat membangun glproto ( tautan ), libdrm ( tautan ), dan kemudian mesa ( tautan ) dari sumber. Sementara banyak paket lain mungkin berisi file header ini, penting untuk pergi ke sumbernya. Ini akan mengurangi jejak memori instalasi Anda dan memastikan Anda memiliki versi terbaru dan / atau terhebat.

Adam Erickson
sumber