Date Редакция Категория comp Теги GLUT / ubuntu / C

Фактически мы устанавливаем не 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