Learning OpenGL in Ubuntu [closed]
The first thing to do is install the OpenGL libraries. I recommend:
freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev
Once you have them installed, link to them when you compile:
g++ -lglut -lGL -lGLU -lGLEW example.cpp -o example
In example.cpp, include the OpenGL libraries like so:
#include <GL/glew.h>
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glext.h>
Then, to enable the more advanced opengl options like shaders, place this after your glutCreateWindow Call:
GLenum err = glewInit();
if (GLEW_OK != err)
{
fprintf(stderr, "Error %s\n", glewGetErrorString(err));
exit(1);
}
fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));
if (GLEW_ARB_vertex_program)
fprintf(stdout, "Status: ARB vertex programs available.\n");
if (glewGetExtension("GL_ARB_fragment_program"))
fprintf(stdout, "Status: ARB fragment programs available.\n");
if (glewIsSupported("GL_VERSION_1_4 GL_ARB_point_sprite"))
fprintf(stdout, "Status: ARB point sprites available.\n");
That should enable all OpenGL functionality, and if it doesn't, then it should tell you the problems.
I'll guess that it is the compilation process that is the biggest difference initially. Here is a useful Makefile for compiling simple OpenGL apps on Ubuntu.
INCLUDE = -I/usr/X11R6/include/
LIBDIR = -L/usr/X11R6/lib
FLAGS = -Wall
CC = g++ # change to gcc if using C
CFLAGS = $(FLAGS) $(INCLUDE)
LIBS = -lglut -lGL -lGLU -lGLEW -lm
All: your_app # change your_app.
your_app: your_app.o
$(CC) $(CFLAGS) -o $@ $(LIBDIR) $< $(LIBS) # The initial white space is a tab
Save this to a file called Makefile that should be in the same directory. Compile by writing make from terminal or :make from Vim.
Good luck
a little update for the makefile because I found this old answers from @Millthorn and it didn't worked: you dont need to definde the include path since it's in standard lib https://stackoverflow.com/a/2459788/1059828
a minimal makefile to compile open GL could look like this:
LDFLAGS=-lglut -lGL -lGLU -lGLEW -lm
all: your_app
http://surflab.cise.ufl.edu/wiki/Getting_Started_with_OpenGL_in_Ubuntu
Maybe you would like to use Qt to draw the windows and widgets.
Here's a tutorial based on the Nehe guides to show you how to create OpenGL images with Qt.
To learn OpenGL, the OpenGL Red Book is a must read. There's an online version. It has very good explanations and examples.