Gl glut h linux

How to Install OpenGL on Ubuntu Linux

What Is OpenGL?
OpenGL is a Graphics rendering API which is operating system independent, window system independent and has high-quality color images composed of geometric and image primitives.
OpenGL APIs can use following …

  • Gl
    • OpenGL API implementation (http://www.opengl.org)
  • Glu
    • OpenGL Utility
  • Glut – GLUT (OpenGL Utility Toolkit) – Glut is portable windowing API and it is not officially part of OpenGL.
    • OpenGL Utility Toolkit (http://www.opengl.org/resources/libraries/glut/)
  • FLTK
    • FlashLight ToolKit (http://www.fltk.org/)
  • GLEW

Now lets see How to install OpenGL on out Ubuntu OS.

Now because GLUT (OpenGL Utility Toolkit) depends upon OpenGL and a number of other related libraries, if we install GLUT then OpenGL will be automatically be installed.

Run the following commands to install OpenGL.

Now to test if OpenGl libraries are working fine on our Linux, we will create a C++ program and test it.

So create a following C++ Program.

Now give the command below to compile your code.

Now run your OpenGl program with following command

If a window pops up when you run the program, then OpenGL is working on your Ubuntu OS.

Источник

shamiul94 / How to install opengl in ubuntu.txt

What Is OpenGL?
OpenGL is a Graphics rendering API which is operating system independent, window system independent and has high-quality color images composed of geometric and image primitives.
OpenGL APIs can use following …
Gl
OpenGL API implementation (http://www.opengl.org)
Glu
OpenGL Utility
Glut – GLUT (OpenGL Utility Toolkit) – Glut is portable windowing API and it is not officially part of OpenGL.
OpenGL Utility Toolkit (http://www.opengl.org/resources/libraries/glut/)
FLTK
FlashLight ToolKit (http://www.fltk.org/)
GLEW…
Now lets see How to install OpenGL on out Ubuntu OS.
Now because GLUT (OpenGL Utility Toolkit) depends upon OpenGL and a number of other related libraries, if we install GLUT then OpenGL will be automatically be installed.
Run the following commands to install OpenGL.
$ sudo apt-get update
$ sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev
Now to test if OpenGl libraries are working fine on our Linux, we will create a C++ program and test it.
So create a following C++ Program.
#include
void displayMe(void)
<
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex3f(0.5, 0.0, 0.5);
glVertex3f(0.5, 0.0, 0.0);
glVertex3f(0.0, 0.5, 0.0);
glVertex3f(0.0, 0.0, 0.5);
glEnd();
glFlush();
>
int main(int argc, char** argv)
<
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitWindowSize(400, 300);
glutInitWindowPosition(100, 100);
glutCreateWindow(«Hello world!»);
glutDisplayFunc(displayMe);
glutMainLoop();
return 0;
>
Now give the command below to compile your code.
$ g++ main.cpp -o firstOpenGlApp -lglut -lGLU -lGL
Now run your OpenGl program with following command
$ ./firstOpenGlApp

This comment has been minimized.

Copy link Quote reply

bhavik-knight commented Feb 3, 2021

Thank man, you’re a life-saver. It helped me running on WSL-Ubuntu running within Mobaxterm with VSC on windows.

Читайте также:  Windows 10 ltsc lite x64 самая легкая 2019

This comment has been minimized.

Copy link Quote reply

shamiul94 commented Feb 3, 2021

@bhabik-knight Happy to be of help. Kindly share if you had to make any modifications to these commands to make it work on your OS configuration so that the next user doesn’t have to reinvent the wheel.

This comment has been minimized.

Copy link Quote reply

bhavik-knight commented Feb 5, 2021

I didn’t have to modify any command. I just use Makefile to automate the building task. So that linkers are linked properly. Thank you so much!

This comment has been minimized.

Copy link Quote reply

ominusliticus commented Mar 28, 2021 •

I seem to be having the issue:

I called the file test.cpp instead of main.cpp

This comment has been minimized.

Copy link Quote reply

bhavik-knight commented Mar 31, 2021

#include
is the correct header to include @ominusliticus

This comment has been minimized.

Copy link Quote reply

LinuxRocks2000 commented May 4, 2021 •

Installed everything following this tutorial, when I compile a glew/GLFW project it works but upon running it gives Assertion `tls->posix.allocated == GLFW_TRUE’ failed and aborts. Is this a quirk of my operating system (Kubuntu 20.04), or do I need to install compatibility libraries?

This comment has been minimized.

Copy link Quote reply

GithungoIan commented Jun 6, 2021

Thanks a lot this was very much helpful I was able to create my first window and draw a Polygon. I am running Ubuntu 20.04

This comment has been minimized.

Copy link Quote reply

Yvn919 commented Jun 22, 2021

I have a hello world windows and that is black and a white triangle . is this normal ?

This comment has been minimized.

Copy link Quote reply

EvanNibbe commented Jul 9, 2021

Dude, you are a lifesaver, this is the first time I have ever made C++ code create a pop-up graphical item!

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Источник

include

Any idea of whatś happening?
i have all in place including the QT+= flags and etc. but it not find the OpenGL headers.

Another strange thing is the .pro file are not being recognized by the system to be oppened by QTCreator.

Any help will be much appreciated.

You don’t have the OpenGL dev package for your distribution installed.

As for the pro file opening, it depends on your current desktop environment

i will try install a free Linux Version, since i´m using a Registered Enterprise package for mobile. maybe this is the problem.

SGaist is right. You dont’t have OpenGL dev package on your workstation.

Try to install libgl-dev.

sudo apt-get install libgl-dev

Hi,
I am trying to compile some QT examples under linux mint 18 and get the same errors. I am using the nvidia drivers. The QT Creator is from the standard repositories. Since many people seem to suffer from this, there are many solutions on the web. I tried these:

sudo apt-get install libgl-dev
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev libgl1-mesa-dev
sudo apt-get install libxi-dev build-essential libdbus-1-dev libfontconfig1-dev libfreetype6-dev libx11-dev
apt-get install libqt4-dev zlib1g-dev libqt4-opengl-dev

and also made symbolic links, all to no avail. When I run: locate libGL I get this output:

/usr/lib/libGL.so
/usr/lib/chromium-browser/libGLESv2.so
/usr/lib/i386-linux-gnu/libGLU.so.1
/usr/lib/i386-linux-gnu/libGLU.so.1.3.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/nvidia-375/libGL.so
/usr/lib/nvidia-375/libGL.so.1
/usr/lib/nvidia-375/libGL.so.1.0.0
/usr/lib/nvidia-375/libGLESv1_CM.so
/usr/lib/nvidia-375/libGLESv1_CM.so.1
/usr/lib/nvidia-375/libGLESv1_CM_nvidia.so.1
/usr/lib/nvidia-375/libGLESv1_CM_nvidia.so.375.39
/usr/lib/nvidia-375/libGLESv2.so
/usr/lib/nvidia-375/libGLESv2.so.2
/usr/lib/nvidia-375/libGLESv2_nvidia.so.2
/usr/lib/nvidia-375/libGLESv2_nvidia.so.375.39
/usr/lib/nvidia-375/libGLX.so
/usr/lib/nvidia-375/libGLX.so.0
/usr/lib/nvidia-375/libGLX_indirect.so.0
/usr/lib/nvidia-375/libGLX_nvidia.so.0
/usr/lib/nvidia-375/libGLX_nvidia.so.375.39
/usr/lib/nvidia-375/libGLdispatch.so.0
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/libGLESv2.so
/usr/lib/x86_64-linux-gnu/libGLEW.so
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.13
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.13.0
/usr/lib/x86_64-linux-gnu/libGLU.a
/usr/lib/x86_64-linux-gnu/libGLU.so
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv1_CM.so.1
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv1_CM.so.1.1.0
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2.0.0
/usr/lib/x86_64-linux-gnu/qtcreator/libGLSL.so
/usr/lib/x86_64-linux-gnu/qtcreator/libGLSL.so.1
/usr/lib/x86_64-linux-gnu/qtcreator/libGLSL.so.1.0
/usr/lib/x86_64-linux-gnu/qtcreator/libGLSL.so.1.0.0
/usr/lib/x86_64-linux-gnu/qtcreator/plugins/libGLSLEditor.so
/usr/lib32/libGL.so
/usr/lib32/nvidia-375/libGL.la
/usr/lib32/nvidia-375/libGL.so
/usr/lib32/nvidia-375/libGL.so.1
/usr/lib32/nvidia-375/libGL.so.1.0.0
/usr/lib32/nvidia-375/libGLESv1_CM.so
/usr/lib32/nvidia-375/libGLESv1_CM.so.1
/usr/lib32/nvidia-375/libGLESv1_CM_nvidia.so.1
/usr/lib32/nvidia-375/libGLESv1_CM_nvidia.so.375.39
/usr/lib32/nvidia-375/libGLESv2.so
/usr/lib32/nvidia-375/libGLESv2.so.2
/usr/lib32/nvidia-375/libGLESv2_nvidia.so.2
/usr/lib32/nvidia-375/libGLESv2_nvidia.so.375.39
/usr/lib32/nvidia-375/libGLX.so
/usr/lib32/nvidia-375/libGLX.so.0
/usr/lib32/nvidia-375/libGLX_indirect.so.0
/usr/lib32/nvidia-375/libGLX_nvidia.so.0
/usr/lib32/nvidia-375/libGLX_nvidia.so.375.39
/usr/lib32/nvidia-375/libGLdispatch.so.0
/usr/local/MATLAB/R2016b/sys/opengl/lib/glnxa64/libGL.rights
/usr/local/MATLAB/R2016b/sys/opengl/lib/glnxa64/libGL.so.1
/usr/local/MATLAB/R2016b/sys/opengl/lib/glnxa64/libGL.so.1.6.0
/usr/local/MATLAB/R2016b/sys/opengl/lib/glnxa64/libGLU.rights
/usr/local/MATLAB/R2016b/sys/opengl/lib/glnxa64/libGLU.so.1
/usr/local/MATLAB/R2016b/sys/opengl/lib/glnxa64/libGLU.so.1.3.1

Читайте также:  Windows 10 не установить видеодрайвер nvidia

along with some steam and playonlinux stuff. My Matlab installation and steam work fine with OpenGL.
It there anything I can do to resolve this?

Hi and welcome to devnet,

What version of Qt did you install on your machine ?

Источник

не видит Gl/glut.h

Использую Ubuntu 14.04
Открыл исходник в qt, возникла проблема с тем, что пишет error: GL/glut.h: No such file or directory

В про-файл добавил

вот этой командой скачал вроде бы библиотеку
sudo apt-get install binutils-gold
если верить сайту http://kiwwito.com/installing-. in-ubuntu/

в main()
есть строчка glutInit(&argc, argv); //initialize glut

Проблема в том, что LIBS += -LC:\glut он не видит где лежит этот файл или в чем-то другом?
Как сделать так, что проект видел эту библиотеку?

Dev c++ не видит бибилиотеки Glut
Нашел в интернете примеры использования glut на c++, попытался использовать примеры что бы потом.

Работа с трехмерными примитивами. Вокруг конуса GLU вращаются сфера GLUT и конус GLUT
создание виртуальной камеры gluLookAt и добавление эффектов анимации. вот само задание Вокруг.

WD3200AAJB-00J3A0 то НЕ видит, то видит BIOS, USB-to-IDE/SATA видит всегда
День добрый. Есть HDD WD3200AAJB-00J3A0. Проблема в том, что его перестал видеть BIOS. Иногда.

BIOS видит HDD. Windows, Acronis не видит. Live UBUNTU видит
Нужно вытащить данные с неисправного жесткого диска. HDD 2.5″ Toshiba 160 Gb Sata. BIOS видит.

— это ошибка компиляции, а не линковки.

Ставь dev пакет, убирай из pro файла все, что ты наэкспериментировал до этого, кроме

ввел команду sudo apt-get install glutg3-dev

получил в терминале следующее:
Пакет glutg3-dev недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list

E: Для пакета «glutg3-dev» не найден кандидат на установку

видимо стоит уже этот пакет, в списке зависимости

Добавлено через 13 минут
Для пакета «glutg3-dev» не найден кандидат на установку

Источник

Знакомимся с OpenGL

OpenGL

Знакомство с OpenGL нужно начать с того, что OpenGL — это спецификация. Т.е. OpenGL лишь определяет набор обязательных возможностей. Реализация же зависит от конкретной платформы.
OpenGL является кроссплатформенным, независимым от языка программирования API для работы с графикой. OpenGL — низкоуровневый API, поэтому для работы с ним неплохо иметь некоторое представление о графике в целом и знать основы линейной алгебры.

Именования

Скажем пару слов об именовании функций в OpenGL. Во-первых имена всех функций, предоставляемых непосредственно OpenGL, начинаются с приставки gl. Во-вторых функции, задающие некоторый параметр, характеризующийся набором чисел (например координату или цвет), имеют суффикс вида [число параметров + тип параметров + представление параметров].

  • Число параметров — указывает число принимаемых параметров. Принимает следующие значения: 1, 2, 3, 4
  • Тип параметров — указывает тип принимаемых параметров. Возможны следующие значения: b, s, i, f, d, ub, us, ui. Т.е. byte (char в C, 8-битное целое число), short (16-битное целое число), int (32-битное целое число), float (число с плавающей запятой), double (число с плавающей запятой двойной точности), unsigned byte, unsigned short, unsigned int (последние три — беззнаковые целые числа)
  • Представление параметров — указывает в каком виде передаются параметры, если каждое число по отдельности, то ничего не пишется, если же параметры передаются в виде массива, то к названию функции дописывается буква v

Пример: glVertex3iv задает координату вершины, состоящую из трех целых чисел, передаваемых в виде указателя на массив.

Графика

  1. glBegin ( GL_QUADS ) ;
  2. glColor3f ( 1.0 , 1.0 , 1.0 ) ;
  3. glVertex2i ( 250 , 450 ) ;
  4. glColor3f ( 0.0 , 0.0 , 1.0 ) ;
  5. glVertex2i ( 250 , 150 ) ;
  6. glColor3f ( 0.0 , 1.0 , 0.0 ) ;
  7. glVertex2i ( 550 , 150 ) ;
  8. glColor3f ( 1.0 , 0.0 , 0.0 ) ;
  9. glVertex2i ( 550 , 450 ) ;
  10. glEnd ( ) ;

Основы программы на OpenGL

Для платформонезависимой работы с окнами можно использовать библиотеку GLUT. GLUT упрощает работу с OpenGL.
Для инициализации GLUT в начале программы надо вызвать glutInit (&argc, argv). Для задания режима дисплея вызывается glutInitDisplayMode (режим), где режим может принимать следующие значения:

  • GLUT_RGBA — включает четырехкомпонентный цвет (используется по умолчанию)
  • GLUT_RGB — то же, что и GLUT_RGBA
  • GLUT_INDEX — включает индексированный цвет
  • GLUT_DOUBLE — включает двойной экранный буфер
  • GLUT_SINGLE — включает одиночный экранный буфер (по умолчанию)
  • GLUT_DEPTH — включает Z-буфер (буфер глубины)
  • GLUT_STENCIL — включает трафаретный буфер
  • GLUT_ACCUM — включает буфер накопления
  • GLUT_ALPHA — включает альфа-смешивание (прозрачность)
  • GLUT_MULTISAMPLE — включает мультисемплинг (сглаживание)
  • GLUT_STEREO — включает стерео-изображение
Читайте также:  Kb3176492 накопительное обновление для windows 10 9 августа 2016

Для выбора нескольких режимов одновременно нужно использовать побитовое ИЛИ ‘|’. Например: glutInitDisplayMode (GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH) включает двойную буферизацию, Z-буфер и четырехкомпонентный цвет. Размеры окна задаются glutInitWindowSize (ширина, высота). Его позиция — glutInitWindowPosition (х, у). Создается окно функцией glutCreateWindow (заголовок_окна).
GLUT реализует событийно-управляемый механизм. Т.е. есть главный цикл, который запускается после инициализации, и в нем уже обрабатываются все объявленные события. Например нажатие клавиши на клавиатуре или движение курсора мыши и т.д. Зарегистрировать функции-обработчики событий можно при помощи следующих команд:

  • void glutDisplayFunc (void (*func) (void)) — задает функцию рисования изображения
  • void glutReshapeFunc (void (*func) (int width, int height)) — задает функцию обработки изменения размеров окна
  • void glutVisibilityFunc (void (*func)(int state)) — задает функцию обработки изменения состояния видимости окна
  • void glutKeyboardFunc (void (*func)(unsigned char key, int x, int y)) — задает функцию обработки нажатия клавиш клавиатуры (только тех, что генерируют ascii-символы)
  • void glutSpecialFunc (void (*func)(int key, int x, int y)) — задает функцию обработки нажатия клавиш клавиатуры (тех, что не генерируют ascii-символы)
  • void glutIdleFunc (void (*func) (void)) — задает функцию, вызываемую при отсутствии других событий
  • void glutMouseFunc (void (*func) (int button, int state, int x, int y)) — задает функцию, обрабатывающую команды мыши
  • void glutMotionFunc (void (*func)(int x, int y)) — задает функцию, обрабатывающую движение курсора мыши, когда зажата какая-либо кнопка мыши
  • void glutPassiveMotionFunc (void (*func)(int x, int y)) — задает функцию, обрабатывающую движение курсора мыши, когда не зажато ни одной кнопки мыши
  • void glutEntryFunc (void (*func)(int state)) — задает функцию, обрабатывающую движение курсора за пределы окна и его возвращение
  • void glutTimerFunc (unsigned int msecs, void (*func)(int value), value) — задает функцию, вызываемую по таймеру

Затем можно запускать главный цикл glutMainLoop ().

Первая программа

  1. #if defined(linux) || defined(_WIN32)
  2. #include /*Для Linux и Windows*/
  3. #else
  4. #include /*Для Mac OS*/
  5. #endif
  1. int main ( int argc , char * argv [ ] )
  2. <
  3. glutInit ( & argc , argv ) ;
  4. glutInitDisplayMode ( GLUT_DOUBLE | GLUT_RGBA ) ; /*Включаем двойную буферизацию и четырехкомпонентный цвет*/
  5. glutInitWindowSize ( 800 , 600 ) ;
  6. glutCreateWindow ( «OpenGL lesson 1» ) ;
  7. glutReshapeFunc ( reshape ) ;
  8. glutDisplayFunc ( display ) ;
  9. glutMainLoop ( ) ;
  10. return 0 ;
  11. >
  1. void reshape ( int w , int h )
  2. <
  3. glViewport ( 0 , 0 , w , h ) ;
  4. glMatrixMode ( GL_PROJECTION ) ;
  5. glLoadIdentity ( ) ;
  6. gluOrtho2D ( 0 , w , 0 , h ) ;
  7. glMatrixMode ( GL_MODELVIEW ) ;
  8. glLoadIdentity ( ) ;
  9. >
  1. void display ( )
  2. <
  3. glClear ( GL_COLOR_BUFFER_BIT ) ;
  4. glBegin ( GL_QUADS ) ;
  5. glColor3f ( 1.0 , 1.0 , 1.0 ) ;
  6. glVertex2i ( 250 , 450 ) ;
  7. glColor3f ( 0.0 , 0.0 , 1.0 ) ;
  8. glVertex2i ( 250 , 150 ) ;
  9. glColor3f ( 0.0 , 1.0 , 0.0 ) ;
  10. glVertex2i ( 550 , 150 ) ;
  11. glColor3f ( 1.0 , 0.0 , 0.0 ) ;
  12. glVertex2i ( 550 , 450 ) ;
  13. glEnd ( ) ;
  14. glutSwapBuffers ( ) ;
  15. >

Все! Можно компилировать. Должно получиться что-то вроде этого:

Весь код целиком (для кто не осилил статью).
В принципе ничего сложного в этом нет, по крайней мере если вы уже сталкивались с графикой до этого.

OpenGL — удобный инструмент для создания кроссплатформенных приложений, использующий графику. OpenGL легко использовать с тем языком программирования, который вам более удобен. Привязки к OpenGL есть для множества популярных языков, таких как C, C++, C#, Java, Python, Perl, VB и других. Посмотреть информацию о них можно на официальном сайте OpenGL.

Источник

Оцените статью