How to Setup OpenGL with gcc Compiler in Linux (Red Hat)
Step1: Your Machine should be connected with Internet, If its not then use below VMware configuration:
Vmware tool configuration:
Network Configuration in Machin:
Step2: Open you terminal prompt with root and execute below commands:
[root@OLE2 ~]# yum search freeglut
Loaded plugins: refresh-packagekit, security
========================================== N/S Matched: freeglut ===========================================
freeglut-devel.i686 : Freeglut developmental libraries and header files
freeglut.i686 : A freely licensed alternative to the GLUT library
Name and summary matches only, use "search all" for everything.
[root@OLE2 ~]#
[root@OLE2 ~]# yum install freeglut-devel.i686
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package freeglut-devel.i686 0:2.6.0-1.el6 will be installed
--> Processing Dependency: freeglut = 2.6.0-1.el6 for package: freeglut-devel-2.6.0-1.el6.i686
--> Processing Dependency: libglut.so.3 for package: freeglut-devel-2.6.0-1.el6.i686
--> Processing Dependency: libGL-devel for package: freeglut-devel-2.6.0-1.el6.i686
--> Processing Dependency: libGLU-devel for package: freeglut-devel-2.6.0-1.el6.i686
--> Running transaction check
---> Package freeglut.i686 0:2.6.0-1.el6 will be installed
---> Package mesa-libGL-devel.i686 0:11.0.7-4.el6 will be installed
--> Processing Dependency: mesa-libGL = 11.0.7-4.el6 for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: pkgconfig(xcb-dri2) >= 1.8 for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: pkgconfig(xcb-glx) >= 1.8.1 for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: pkgconfig(libdrm) >= 2.4.60 for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: pkgconfig(xfixes) for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: pkgconfig(xxf86vm) for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: libX11-devel for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: pkgconfig(xcb) for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: pkgconfig(xdamage) for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: pkgconfig(x11-xcb) for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: pkgconfig(x11) for package: mesa-libGL-devel-11.0.7-4.el6.i686
--> Processing Dependency: pkgconfig(xext) for package: mesa-libGL-devel-11.0.7-4.el6.i686
---> Package mesa-libGLU-devel.i686 0:11.0.7-4.el6 will be installed
--> Processing Dependency: mesa-libGLU = 11.0.7-4.el6 for package: mesa-libGLU-devel-11.0.7-4.el6.i686
--> Running transaction check
---> Package libX11-devel.i686 0:1.6.3-2.el6 will be installed
--> Processing Dependency: libX11 = 1.6.3-2.el6 for package: libX11-devel-1.6.3-2.el6.i686
--> Processing Dependency: pkgconfig(xproto) for package: libX11-devel-1.6.3-2.el6.i686
--> Processing Dependency: pkgconfig(kbproto) for package: libX11-devel-1.6.3-2.el6.i686
---> Package libXdamage-devel.i686 0:1.1.3-4.el6 will be installed
---> Package libXext-devel.i686 0:1.3.3-1.el6 will be installed
--> Processing Dependency: libXext = 1.3.3-1.el6 for package: libXext-devel-1.3.3-1.el6.i686
---> Package libXfixes-devel.i686 0:5.0.1-2.1.el6 will be installed
--> Processing Dependency: libXfixes = 5.0.1-2.1.el6 for package: libXfixes-devel-5.0.1-2.1.el6.i686
---> Package libXxf86vm-devel.i686 0:1.1.3-2.1.el6 will be installed
--> Processing Dependency: libXxf86vm = 1.1.3-2.1.el6 for package: libXxf86vm-devel-1.1.3-2.1.el6.i686
---> Package libdrm-devel.i686 0:2.4.65-2.el6 will be installed
--> Processing Dependency: libdrm = 2.4.65-2.el6 for package: libdrm-devel-2.4.65-2.el6.i686
--> Processing Dependency: libdrm_amdgpu.so.1 for package: libdrm-devel-2.4.65-2.el6.i686
---> Package libxcb-devel.i686 0:1.11-2.el6 will be installed
--> Processing Dependency: libxcb = 1.11-2.el6 for package: libxcb-devel-1.11-2.el6.i686
--> Processing Dependency: pkgconfig(xau) >= 0.99.2 for package: libxcb-devel-1.11-2.el6.i686
--> Processing Dependency: libxcb-xkb.so.1 for package: libxcb-devel-1.11-2.el6.i686
--> Processing Dependency: libxcb-present.so.0 for package: libxcb-devel-1.11-2.el6.i686
--> Processing Dependency: libxcb-dri3.so.0 for package: libxcb-devel-1.11-2.el6.i686
--> Processing Dependency: libxcb-sync.so.1 for package: libxcb-devel-1.11-2.el6.i686
---> Package mesa-libGL.i686 0:9.0-0.7.el6 will be updated
---> Package mesa-libGL.i686 0:11.0.7-4.el6 will be an update
--> Processing Dependency: mesa-dri-drivers(x86-32) = 11.0.7-4.el6 for package: mesa-libGL-11.0.7-4.el6.i686
---> Package mesa-libGLU.i686 0:9.0-0.7.el6 will be updated
---> Package mesa-libGLU.i686 0:11.0.7-4.el6 will be an update
--> Running transaction check
---> Package libX11.i686 0:1.5.0-4.el6 will be updated
---> Package libX11.i686 0:1.6.3-2.el6 will be an update
--> Processing Dependency: libX11-common = 1.6.3-2.el6 for package: libX11-1.6.3-2.el6.i686
---> Package libXau-devel.i686 0:1.0.6-4.el6 will be installed
---> Package libXext.i686 0:1.3.1-2.el6 will be updated
---> Package libXext.i686 0:1.3.3-1.el6 will be an update
---> Package libXfixes.i686 0:5.0-3.el6 will be updated
---> Package libXfixes.i686 0:5.0.1-2.1.el6 will be an update
---> Package libXxf86vm.i686 0:1.1.2-2.el6 will be updated
---> Package libXxf86vm.i686 0:1.1.3-2.1.el6 will be an update
---> Package libdrm.i686 0:2.4.39-1.el6 will be updated
---> Package libdrm.i686 0:2.4.65-2.el6 will be an update
---> Package libxcb.i686 0:1.8.1-1.el6 will be updated
---> Package libxcb.i686 0:1.11-2.el6 will be an update
---> Package mesa-dri-drivers.i686 0:9.0-0.7.el6 will be updated
---> Package mesa-dri-drivers.i686 0:11.0.7-4.el6 will be an update
--> Processing Dependency: libLLVM-3.6-mesa.so for package: mesa-dri-drivers-11.0.7-4.el6.i686
--> Processing Dependency: libLLVM-3.6-mesa.so(libLLVM-3.6-mesa.so) for package: mesa-dri-drivers-11.0.7-4.el6.i686
---> Package xorg-x11-proto-devel.noarch 0:7.7-13.el6 will be installed
--> Running transaction check
---> Package libX11-common.noarch 0:1.5.0-4.el6 will be updated
---> Package libX11-common.noarch 0:1.6.3-2.el6 will be an update
---> Package mesa-private-llvm.i686 0:3.6.2-1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================
Package Arch Version Repository Size
============================================================================================================
Installing:
freeglut-devel i686 2.6.0-1.el6 ol6_latest 111 k
Installing for dependencies:
freeglut i686 2.6.0-1.el6 ol6_latest 166 k
libX11-devel i686 1.6.3-2.el6 ol6_latest 983 k
libXau-devel i686 1.0.6-4.el6 ol6_latest 13 k
libXdamage-devel i686 1.1.3-4.el6 ol6_latest 8.8 k
libXext-devel i686 1.3.3-1.el6 ol6_latest 74 k
libXfixes-devel i686 5.0.1-2.1.el6 ol6_latest 12 k
libXxf86vm-devel i686 1.1.3-2.1.el6 ol6_latest 18 k
libdrm-devel i686 2.4.65-2.el6 ol6_latest 102 k
libxcb-devel i686 1.11-2.el6 ol6_latest 1.1 M
mesa-libGL-devel i686 11.0.7-4.el6 ol6_latest 499 k
mesa-libGLU-devel i686 11.0.7-4.el6 ol6_latest 83 k
mesa-private-llvm i686 3.6.2-1.el6 ol6_latest 6.8 M
xorg-x11-proto-devel noarch 7.7-13.el6 ol6_latest 286 k
Updating for dependencies:
libX11 i686 1.6.3-2.el6 ol6_latest 593 k
libX11-common noarch 1.6.3-2.el6 ol6_latest 169 k
libXext i686 1.3.3-1.el6 ol6_latest 34 k
libXfixes i686 5.0.1-2.1.el6 ol6_latest 16 k
libXxf86vm i686 1.1.3-2.1.el6 ol6_latest 16 k
libdrm i686 2.4.65-2.el6 ol6_latest 139 k
libxcb i686 1.11-2.el6 ol6_latest 149 k
mesa-dri-drivers i686 11.0.7-4.el6 ol6_latest 4.1 M
mesa-libGL i686 11.0.7-4.el6 ol6_latest 158 k
mesa-libGLU i686 11.0.7-4.el6 ol6_latest 195 k
Transaction Summary
============================================================================================================
Install 14 Package(s)
Upgrade 10 Package(s)
Total size: 16 M
Total download size: 16 M
Is this ok [y/N]: y
Downloading Packages:
(1/22): freeglut-2.6.0-1.el6.i686.rpm | 166 kB 00:00
(2/22): freeglut-devel-2.6.0-1.el6.i686.rpm | 111 kB 00:00
(3/22): libX11-1.6.3-2.el6.i686.rpm | 593 kB 00:00
(4/22): libX11-common-1.6.3-2.el6.noarch.rpm | 169 kB 00:00
(5/22): libX11-devel-1.6.3-2.el6.i686.rpm | 983 kB 00:00
(6/22): libXau-devel-1.0.6-4.el6.i686.rpm | 13 kB 00:00
(7/22): libXdamage-devel-1.1.3-4.el6.i686.rpm | 8.8 kB 00:00
(8/22): libXext-1.3.3-1.el6.i686.rpm | 34 kB 00:00
(9/22): libXext-devel-1.3.3-1.el6.i686.rpm | 74 kB 00:00
(10/22): libXfixes-devel-5.0.1-2.1.el6.i686.rpm | 12 kB 00:00
(11/22): libXxf86vm-devel-1.1.3-2.1.el6.i686.rpm | 18 kB 00:00
(12/22): libdrm-2.4.65-2.el6.i686.rpm | 139 kB 00:00
(13/22): libdrm-devel-2.4.65-2.el6.i686.rpm | 102 kB 00:00
(14/22): libxcb-1.11-2.el6.i686.rpm | 149 kB 00:00
(15/22): libxcb-devel-1.11-2.el6.i686.rpm | 1.1 MB 00:00
(16/22): mesa-dri-drivers-11.0.7-4.el6.i686.rpm | 4.1 MB 00:00
(17/22): mesa-libGL-11.0.7-4.el6.i686.rpm | 158 kB 00:00
(18/22): mesa-libGL-devel-11.0.7-4.el6.i686.rpm | 499 kB 00:00
(19/22): mesa-libGLU-11.0.7-4.el6.i686.rpm | 195 kB 00:00
(20/22): mesa-libGLU-devel-11.0.7-4.el6.i686.rpm | 83 kB 00:00
(21/22): mesa-private-llvm-3.6.2-1.el6.i686.rpm | 6.8 MB 00:01
(22/22): xorg-x11-proto-devel-7.7-13.el6.noarch.rpm | 286 kB 00:00
------------------------------------------------------------------------------------------------------------
Total 4.2 MB/s | 16 MB 00:03
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : xorg-x11-proto-devel-7.7-13.el6.noarch 1/34
Updating : libdrm-2.4.65-2.el6.i686 2/34
Updating : libxcb-1.11-2.el6.i686 3/34
Installing : libdrm-devel-2.4.65-2.el6.i686 4/34
Installing : libXau-devel-1.0.6-4.el6.i686 5/34
Installing : libxcb-devel-1.11-2.el6.i686 6/34
Updating : libX11-common-1.6.3-2.el6.noarch 7/34
Updating : libX11-1.6.3-2.el6.i686 8/34
Installing : libX11-devel-1.6.3-2.el6.i686 9/34
Updating : libXext-1.3.3-1.el6.i686 10/34
Installing : libXext-devel-1.3.3-1.el6.i686 11/34
Updating : libXxf86vm-1.1.3-2.1.el6.i686 12/34
Updating : libXfixes-5.0.1-2.1.el6.i686 13/34
Installing : libXfixes-devel-5.0.1-2.1.el6.i686 14/34
Installing : libXdamage-devel-1.1.3-4.el6.i686 15/34
Installing : libXxf86vm-devel-1.1.3-2.1.el6.i686 16/34
Installing : mesa-private-llvm-3.6.2-1.el6.i686 17/34
Updating : mesa-dri-drivers-11.0.7-4.el6.i686 18/34
Updating : mesa-libGL-11.0.7-4.el6.i686 19/34
Installing : mesa-libGL-devel-11.0.7-4.el6.i686 20/34
Updating : mesa-libGLU-11.0.7-4.el6.i686 21/34
Installing : mesa-libGLU-devel-11.0.7-4.el6.i686 22/34
Installing : freeglut-2.6.0-1.el6.i686 23/34
Installing : freeglut-devel-2.6.0-1.el6.i686 24/34
Cleanup : mesa-libGLU-9.0-0.7.el6.i686 25/34
Cleanup : mesa-libGL-9.0-0.7.el6.i686 26/34
Cleanup : libXxf86vm-1.1.2-2.el6.i686 27/34
Cleanup : libXext-1.3.1-2.el6.i686 28/34
Cleanup : libXfixes-5.0-3.el6.i686 29/34
Cleanup : libX11-1.5.0-4.el6.i686 30/34
Cleanup : mesa-dri-drivers-9.0-0.7.el6.i686 31/34
Cleanup : libdrm-2.4.39-1.el6.i686 32/34
Cleanup : libX11-common-1.5.0-4.el6.noarch 33/34
Cleanup : libxcb-1.8.1-1.el6.i686 34/34
Verifying : mesa-libGL-devel-11.0.7-4.el6.i686 1/34
Verifying : libdrm-devel-2.4.65-2.el6.i686 2/34
Verifying : libX11-devel-1.6.3-2.el6.i686 3/34
Verifying : libXxf86vm-1.1.3-2.1.el6.i686 4/34
Verifying : libXxf86vm-devel-1.1.3-2.1.el6.i686 5/34
Verifying : libXext-1.3.3-1.el6.i686 6/34
Verifying : freeglut-devel-2.6.0-1.el6.i686 7/34
Verifying : libX11-1.6.3-2.el6.i686 8/34
Verifying : libXau-devel-1.0.6-4.el6.i686 9/34
Verifying : mesa-libGLU-11.0.7-4.el6.i686 10/34
Verifying : libxcb-1.11-2.el6.i686 11/34
Verifying : mesa-libGL-11.0.7-4.el6.i686 12/34
Verifying : freeglut-2.6.0-1.el6.i686 13/34
Verifying : libXdamage-devel-1.1.3-4.el6.i686 14/34
Verifying : mesa-private-llvm-3.6.2-1.el6.i686 15/34
Verifying : mesa-dri-drivers-11.0.7-4.el6.i686 16/34
Verifying : libXfixes-devel-5.0.1-2.1.el6.i686 17/34
Verifying : mesa-libGLU-devel-11.0.7-4.el6.i686 18/34
Verifying : libXfixes-5.0.1-2.1.el6.i686 19/34
Verifying : libXext-devel-1.3.3-1.el6.i686 20/34
Verifying : xorg-x11-proto-devel-7.7-13.el6.noarch 21/34
Verifying : libxcb-devel-1.11-2.el6.i686 22/34
Verifying : libX11-common-1.6.3-2.el6.noarch 23/34
Verifying : libdrm-2.4.65-2.el6.i686 24/34
Verifying : libxcb-1.8.1-1.el6.i686 25/34
Verifying : mesa-libGLU-9.0-0.7.el6.i686 26/34
Verifying : libXxf86vm-1.1.2-2.el6.i686 27/34
Verifying : libdrm-2.4.39-1.el6.i686 28/34
Verifying : libXfixes-5.0-3.el6.i686 29/34
Verifying : libX11-common-1.5.0-4.el6.noarch 30/34
Verifying : mesa-dri-drivers-9.0-0.7.el6.i686 31/34
Verifying : libX11-1.5.0-4.el6.i686 32/34
Verifying : libXext-1.3.1-2.el6.i686 33/34
Verifying : mesa-libGL-9.0-0.7.el6.i686 34/34
Installed:
freeglut-devel.i686 0:2.6.0-1.el6
Dependency Installed:
freeglut.i686 0:2.6.0-1.el6 libX11-devel.i686 0:1.6.3-2.el6
libXau-devel.i686 0:1.0.6-4.el6 libXdamage-devel.i686 0:1.1.3-4.el6
libXext-devel.i686 0:1.3.3-1.el6 libXfixes-devel.i686 0:5.0.1-2.1.el6
libXxf86vm-devel.i686 0:1.1.3-2.1.el6 libdrm-devel.i686 0:2.4.65-2.el6
libxcb-devel.i686 0:1.11-2.el6 mesa-libGL-devel.i686 0:11.0.7-4.el6
mesa-libGLU-devel.i686 0:11.0.7-4.el6 mesa-private-llvm.i686 0:3.6.2-1.el6
xorg-x11-proto-devel.noarch 0:7.7-13.el6
Dependency Updated:
libX11.i686 0:1.6.3-2.el6 libX11-common.noarch 0:1.6.3-2.el6 libXext.i686 0:1.3.3-1.el6
libXfixes.i686 0:5.0.1-2.1.el6 libXxf86vm.i686 0:1.1.3-2.1.el6 libdrm.i686 0:2.4.65-2.el6
libxcb.i686 0:1.11-2.el6 mesa-dri-drivers.i686 0:11.0.7-4.el6 mesa-libGL.i686 0:11.0.7-4.el6
mesa-libGLU.i686 0:11.0.7-4.el6
Complete!
[root@OLE2 ~]#
In case if you have seen error messages related to .rpm file not found something like, then copy that link in Linux web-browser to download rpm file and install with rpm tool or just click on that package.
Step3: Write a OpenGL Program
[root@OLE2 ~]# startx
xauth: creating new authority file /root/.serverauth.21332
Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.
(EE)
Please consult the Red Hat, Inc. support
at https://www.redhat.com/apps/support/
for help.
(EE)
Step 3: OpenGL Example to execute c program
[root@OLE2 ~]#
[root@OLE2 ~]# vi tri.c
// Programmer: Mihalis Tsoukalos
// Date: Wednesday 04 June 2014
//
// A simple OpenGL program that draws a triangle.
#include "GL/freeglut.h"
#include "GL/gl.h"
void drawTriangle()
{
glClearColor(0.4, 0.4, 0.4, 0.4);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
glBegin(GL_TRIANGLES);
glVertex3f(-0.7, 0.7, 0);
glVertex3f(0.7, 0.7, 0);
glVertex3f(0, -1, 0);
glEnd();
glFlush();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow("OpenGL - Creating a triangle");
glutDisplayFunc(drawTriangle);
glutMainLoop();
return 0;
}
[root@OLE2 ~]#
[root@OLE2 ~]# gcc tri.c -lglut -o tr
[root@OLE2 ~]# ./tr
Read about Basics of OpenGL from the links:



Comments
Post a Comment