bischi
24-05-2005, 18:24
Vielleicht mag ich C++ einfach zu wenig... Aber: Ich wollte mal einfach so zum Spass anfangen, ein wenig OpenGL zu programmieren. Hab mir das offizielle "Buch" heruntergeladen, Beispieldatei geschrieben und versucht, zu kompilieren. Daran bin ich allerdings gescheitert:
Installiert sind:
freeglut3
xlibmesa und weitere.
Hier das Beispiel:
#include <GL/gl.h>
#include <GL/glut.h>
void display(){
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();
}
void init(){
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);
}
int main(int argc, char** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500,500);
glutCreateWindow("Fenstertitel");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Beim Kompilieren mittels
g++ HelloWorld.c
kommt ne Menge Fehlermeldungen, mit denen ich leider nichts anfangen kann.
OpenGL2$ g++ HelloWorld.c
/tmp/ccfzKDLz.o(.text+0xe): In function `display()':
: undefined reference to `glClear'
/tmp/ccfzKDLz.o(.text+0x2d): In function `display()':
: undefined reference to `glColor3f'
/tmp/ccfzKDLz.o(.text+0x39): In function `display()':
: undefined reference to `glBegin'
/tmp/ccfzKDLz.o(.text+0x58): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccfzKDLz.o(.text+0x77): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccfzKDLz.o(.text+0x96): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccfzKDLz.o(.text+0xb5): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccfzKDLz.o(.text+0xba): In function `display()':
: undefined reference to `glEnd'
/tmp/ccfzKDLz.o(.text+0xbf): In function `display()':
: undefined reference to `glFlush'
/tmp/ccfzKDLz.o(.text+0xf0): In function `init()':
: undefined reference to `glClearColor'
/tmp/ccfzKDLz.o(.text+0xfc): In function `init()':
: undefined reference to `glMatrixMode'
/tmp/ccfzKDLz.o(.text+0x101): In function `init()':
: undefined reference to `glLoadIdentity'
/tmp/ccfzKDLz.o(.text+0x12d): In function `init()':
: undefined reference to `glOrtho'
/tmp/ccfzKDLz.o(.text+0x152): In function `main':
: undefined reference to `glutInit'
/tmp/ccfzKDLz.o(.text+0x15e): In function `main':
: undefined reference to `glutInitDisplayMode'
/tmp/ccfzKDLz.o(.text+0x172): In function `main':
: undefined reference to `glutInitWindowSize'
/tmp/ccfzKDLz.o(.text+0x17e): In function `main':
: undefined reference to `glutCreateWindow'
/tmp/ccfzKDLz.o(.text+0x18f): In function `main':
: undefined reference to `glutDisplayFunc'
/tmp/ccfzKDLz.o(.text+0x194): In function `main':
: undefined reference to `glutMainLoop'
collect2: ld returned 1 exit status
Muss ich da was linken? Und wenn ja, was? Hab zwar gemeint, ich hätte c++ so halbwegs im Griff, aber...
MfG Bischi
Installiert sind:
freeglut3
xlibmesa und weitere.
Hier das Beispiel:
#include <GL/gl.h>
#include <GL/glut.h>
void display(){
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();
}
void init(){
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);
}
int main(int argc, char** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500,500);
glutCreateWindow("Fenstertitel");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Beim Kompilieren mittels
g++ HelloWorld.c
kommt ne Menge Fehlermeldungen, mit denen ich leider nichts anfangen kann.
OpenGL2$ g++ HelloWorld.c
/tmp/ccfzKDLz.o(.text+0xe): In function `display()':
: undefined reference to `glClear'
/tmp/ccfzKDLz.o(.text+0x2d): In function `display()':
: undefined reference to `glColor3f'
/tmp/ccfzKDLz.o(.text+0x39): In function `display()':
: undefined reference to `glBegin'
/tmp/ccfzKDLz.o(.text+0x58): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccfzKDLz.o(.text+0x77): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccfzKDLz.o(.text+0x96): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccfzKDLz.o(.text+0xb5): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccfzKDLz.o(.text+0xba): In function `display()':
: undefined reference to `glEnd'
/tmp/ccfzKDLz.o(.text+0xbf): In function `display()':
: undefined reference to `glFlush'
/tmp/ccfzKDLz.o(.text+0xf0): In function `init()':
: undefined reference to `glClearColor'
/tmp/ccfzKDLz.o(.text+0xfc): In function `init()':
: undefined reference to `glMatrixMode'
/tmp/ccfzKDLz.o(.text+0x101): In function `init()':
: undefined reference to `glLoadIdentity'
/tmp/ccfzKDLz.o(.text+0x12d): In function `init()':
: undefined reference to `glOrtho'
/tmp/ccfzKDLz.o(.text+0x152): In function `main':
: undefined reference to `glutInit'
/tmp/ccfzKDLz.o(.text+0x15e): In function `main':
: undefined reference to `glutInitDisplayMode'
/tmp/ccfzKDLz.o(.text+0x172): In function `main':
: undefined reference to `glutInitWindowSize'
/tmp/ccfzKDLz.o(.text+0x17e): In function `main':
: undefined reference to `glutCreateWindow'
/tmp/ccfzKDLz.o(.text+0x18f): In function `main':
: undefined reference to `glutDisplayFunc'
/tmp/ccfzKDLz.o(.text+0x194): In function `main':
: undefined reference to `glutMainLoop'
collect2: ld returned 1 exit status
Muss ich da was linken? Und wenn ja, was? Hab zwar gemeint, ich hätte c++ so halbwegs im Griff, aber...
MfG Bischi