Ich habe bereits C++ voll drauf und wollte nun meinen Horizont mit der OpenGL erweitern, doch was brauche ich alles?
Da ich auf jeden Fall OpenGL lernen möchte, habe ich mir sogleich das RedBook (für Version 1.4) gekauft und will nun mein erstes Programm zum laufen kriegen.
Neben GCC und den ganzen anderen Tools (Make, Automake, Autoconf, ...) habe ich noch die Pakete glutg3-dev installiert und es sind alle nötigen Bibliotheken (gl.h, glu.h, glut.h) auch im System. Dennoch weigert sich GCC den Code (den ich aus dem RedBook habe) zu kompilieren.
Hier der Code:
Code: Alles auswählen
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <stdio.h>
#include <stdlib.h>
void init(void);
void display(void);
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(100, 100);
glutCreateWindow("hello");
init();
glutDisplayFunc(display);
glutMainLoop();
return EXIT_SUCCESS;
}
void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f(0.25, 0.25, 0.0);
glVertex3f(0.75, 0.25, 0.0);
glVertex3f(0.75, 0.75, 0.0);
glVertex3f(0.25, 0.75, 0.0);
glEnd();
glFlush();
}
Code: Alles auswählen
linking gltest (libtool)
linking gltest (gcc)
/home/user/Source/gltest/src/gltest.c:19: undefined reference to `glutInit'
gltest.o(.text+0x2a):/home/user/Source/gltest/src/gltest.c:20: undefined reference to `glutInitDisplayMode'
gltest.o(.text+0x3e):/home/user/Source/gltest/src/gltest.c:21: undefined reference to `glutInitWindowSize'
gltest.o(.text+0x52):/home/user/Source/gltest/src/gltest.c:22: undefined reference to `glutInitWindowPosition'
gltest.o(.text+0x5e):/home/user/Source/gltest/src/gltest.c:23: undefined reference to `glutCreateWindow'
gltest.o(.text+0x6f):/home/user/Source/gltest/src/gltest.c:25: undefined reference to `glutDisplayFunc'
gltest.o(.text+0x74):/home/user/Source/gltest/src/gltest.c:26: undefined reference to `glutMainLoop'
/home/user/Source/gltest/src/gltest.c:32: undefined reference to `glClearColor'
gltest.o(.text+0xb5):/home/user/Source/gltest/src/gltest.c:33: undefined reference to `glMatrixMode'
gltest.o(.text+0xba):/home/user/Source/gltest/src/gltest.c:34: undefined reference to `glLoadIdentity'
gltest.o(.text+0xe6):/home/user/Source/gltest/src/gltest.c:35: undefined reference to `glOrtho'
/home/user/Source/gltest/src/gltest.c:40: undefined reference to `glClear'
gltest.o(.text+0x119):/home/user/Source/gltest/src/gltest.c:41: undefined reference to `glColor3f'
gltest.o(.text+0x125):/home/user/Source/gltest/src/gltest.c:42: undefined reference to `glBegin'
gltest.o(.text+0x144):/home/user/Source/gltest/src/gltest.c:43: undefined reference to `glVertex3f'
gltest.o(.text+0x163):/home/user/Source/gltest/src/gltest.c:44: undefined reference to `glVertex3f'
gltest.o(.text+0x182):/home/user/Source/gltest/src/gltest.c:45: undefined reference to `glVertex3f'
gltest.o(.text+0x1a1):/home/user/Source/gltest/src/gltest.c:46: undefined reference to `glVertex3f'
gltest.o(.text+0x1a6):/home/user/Source/gltest/src/gltest.c:47: undefined reference to `glEnd'
gltest.o(.text+0x1ab):/home/user/Source/gltest/src/gltest.c:49: undefined reference to `glFlush'
*** Exited with status: 2 ***