Фактически мы устанавливаем не GLUT, а его более современный свободный аналог — freeglut.
Набираем в терминале:
sudo apt-get install freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev mesa-common-dev
Подключение заголовочного файла:
#include <GL/freeglut.h> // с дополнительными возможностями
//или #include <GL/glut.h> // обычный GLUT
Пример файла (source.cpp):
#include <GL/glut.h>
void display()
{
// рисует три линии: зеленую, синюю и красную
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
glColor3f(1.0, 0.0, 0.0);
glVertex2f(0.25, 0.25);
glVertex2f(0.75, 0.75);
glColor3f(0.0, 1.0, 0.0);
glVertex2f(0.75, 0.25);
glVertex2f(0.25, 0.75);
glColor3f(0.0, 0.0, 1.0);
glVertex2f(0.50, 0.25);
glVertex2f(0.50, 0.75);
glEnd();
glFlush();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(240, 240);
glutInitWindowPosition(100, 740);
glutCreateWindow("Test");
glClearColor(1.0, 1.0, 1.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
glutDisplayFunc(display);
glutMainLoop();
}
При компиляции использовать команду:
g++ -lGL -lGLU -lglut source.cpp -o source
Если после этого компилятор выдает сообщения вроде:
source.cpp:(.text+0x1c1): undefined reference to `glutInit'
source.cpp:(.text+0x1cd): undefined reference to `glutInitDisplayMode'
...
то, возможно, у вас не установлен пакет binutils-gold
(Gold linker). Установите его и попробуйте снова скопмилировать source.cpp.
Комментарии
comments powered by Disqus