Скласти програму OpenGL (відсутня GL / gl.h)


51

Я повна Linux / Ubuntu noob, тому прошу вибачення за будь-які тупі частини цього питання або подальші.

Я намагаюся отримати програму, яку група мого інженерного програмного забезпечення написала на свій домашній комп'ютер. У школі у нас є Linux, і він буде компілювати та працювати там чудово. Я завантажив VMWare, встановив Ubuntu на віртуальній машині, і зараз намагаюся відкрити свою програму.

Однак коли-небудь я намагаюся запустити файл make, я отримую помилку, яка говорить

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, щоб перевірити, але я думаю, що результат буде чимось на зразок mesa-dev або opengl-dev.

Як тільки ви дізнаєтеся, який пакет надає "gl.h", (давайте зробимо вигляд, що результатом apt-файла є "libmesa-dev"), встановіть його:

apt-get install libmesa-dev

Більше інформації про влучну сімейство команд: 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
О, чоловік дуже дякую, що навчив мене ловити рибу, а не просто дав мені назву пакета!
Брайан Каїн

2
Дякуємо за інформацію про apt-файл. Щодо необхідного пакету для 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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.