OpenGL Programını Derleyin (Eksik GL / gl.h)


51

Ben tam bir Linux / Ubuntu noob'um, bu yüzden bu sorunun aptal bölümleri veya takip eden bölümleri için özür dilerim.

Yazılım mühendisliği sınıfımın grubunun ev bilgisayarıma yazdığı bir program almaya çalışıyorum. Okulda, Linux'umuz var ve orada derlenip çalışacak. VMWare'i indirdim, Ubuntu'yu sanal bir makineye kurdum ve şimdi programımı açmaya çalışıyorum.

Ne zaman make dosyamı çalıştırmayı denediğimde, şunu söyleyen bir hata alıyorum:

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

Okul bilgisayarımda bulabildiğinde, bu dosyayı neden bulamadığını bilen var mı? Ve indirmek ya da doğru yere almak için ne yapmam gerekiyor?

Yanıtlar:


83

Her ne kadar dev paket (ler) in gl.h. sağladığını bilmiyorsundur. apt-filekullanılacak komut satırı aracıdır.

İlk önce, güncel olduğundan emin olun:

apt-file update

Şimdi "gl.h dosyasını hangi paket sağlar?" Diye cevaplamak için bir arama yazabilirsiniz.

apt-file search "gl.h"

Şimdi kontrol etmek için bir ubuntu kutum yok, ancak sonucun mesa-dev veya opengl-dev gibi bir şey olacağını tahmin ediyorum.

Hangi paketin "gl.h" yi sağladığını öğrendikten sonra (apt-file dosyasının sonucunu "libmesa-dev" olarak kabul edelim), kurun:

apt-get install libmesa-dev

Apt komutları ailesi hakkında daha fazla bilgi: https://help.ubuntu.com/community/AptGet/Howto


Yardım için teşekkürler. Önerdiğiniz şeyi denedim ve aramanın çıktısıyla orijinal gönderiyi güncelledim.
Nadiren

Sadece onunla oynamaya karar verdim ve mesa-common-dev paketini indirdim. Sonra usr / include / GL klasörüne girmeyi başardım ve orada olduğunu gördüm. Kopyaladım / yapıştırdım ve projemin klasörüne yapıştırdım ve işe yaradı. Ama sonra benim projem bir "glu.h" klasörüne ihtiyacı olduğu konusunda bir hata veriyordu, bu yüzden libcgal-dev paketini indirdim ve copy / paste ile aynı şeyi yaptım. Bunu doğru klasöre koyup make komutunu çalıştırdıktan sonra, proje derlenir ve çalıştırılır. Yardımınız için çok teşekkür ederim. Şimdi sadece grafikleri yavaşlatmam gerekiyor. :)
Nadiren

Çalışacak yapıyı bulmana sevindim! Kopyala / yapıştır işleminiz hızlı ve kirli, ancak düzgün bir şekilde, içeriğiniz yanlış olabilir. Çok fazla c ++ bilmiyorum, ancak bazı paketleri kaynaktan derlerken benzer bir problem yaşadım. Çözüm, iirc, değişen gibiydi #include <gl.h>için #include<gl/gl.h>.
djeikyb

21
Oh, adam bana paketin adını vermek yerine balık tutmayı öğrettiğin için çok teşekkür ederim!
Brian Cain

2
Apt-file'daki bilgi için teşekkürler. GL / gl.h için gereken paket ile ilgili olarak: mesa-common-dev (en azından Ubuntu 16.04 için)
ElazarR 17:16

36

İçin GL/gl.hKullanım:

sudo apt install mesa-common-dev

Bunları yararlı bulabilirsiniz, örneğin GL/glu.h:

sudo apt install libglu1-mesa-dev freeglut3-dev

Bunları da dahil etmek isteyebilirsinizlibglfw3-dev libgles2-mesa-dev
rustyx

1

Ayrıca glproto ( link ), libdrm ( link ) ve sonra mesa ( link ) kaynağını da oluşturabilirsiniz. Diğer birçok paket bu başlık dosyasını içerebilirken, kaynağa gitmek önemlidir. Bu, kurulumlarınızın hafıza alanını azaltır ve en son ve / veya en iyi sürüme sahip olmanızı sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.