ubuntuusers.de

Glut Programm

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

xecto Team-Icon

Anmeldungsdatum:
1. März 2005

Beiträge: 1349

Wohnort: Österreich, Baden

Habe die Libs installiert nun stoße ich zum zweiten hinderniss:

#include <GL/gl.h>
#include <GL/glut.h>

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 ();
}

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);
}

int main(int argc, char **argv)
{
	glutInit (&argc, argv);
	glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize (250, 250);
	glutInitWindowPosition (100, 100);
	glutCreateWindow("GlutTest");
	init ();
	glutDisplayFunc (display);
	glutMainLoop();
	return 0; 
}


Wenn ich versuche das zu kompilieren kommt:

etienne@xecto:~/Projects/adresse$ gcc adresse.cpp -o bin/gl
/tmp/ccCoeKGw.o(.text+0xe): In function `display()':
: undefined reference to `glClear'
/tmp/ccCoeKGw.o(.text+0x2d): In function `display()':
: undefined reference to `glColor3f'
/tmp/ccCoeKGw.o(.text+0x39): In function `display()':
: undefined reference to `glBegin'
/tmp/ccCoeKGw.o(.text+0x58): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccCoeKGw.o(.text+0x77): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccCoeKGw.o(.text+0x96): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccCoeKGw.o(.text+0xb5): In function `display()':
: undefined reference to `glVertex3f'
/tmp/ccCoeKGw.o(.text+0xba): In function `display()':
: undefined reference to `glEnd'
/tmp/ccCoeKGw.o(.text+0xbf): In function `display()':
: undefined reference to `glFlush'
/tmp/ccCoeKGw.o(.text+0xf0): In function `init()':
: undefined reference to `glClearColor'
/tmp/ccCoeKGw.o(.text+0xfc): In function `init()':
: undefined reference to `glMatrixMode'
/tmp/ccCoeKGw.o(.text+0x101): In function `init()':
: undefined reference to `glLoadIdentity'
/tmp/ccCoeKGw.o(.text+0x12d): In function `init()':
: undefined reference to `glOrtho'
/tmp/ccCoeKGw.o(.text+0x152): In function `main':
: undefined reference to `glutInit'
/tmp/ccCoeKGw.o(.text+0x15e): In function `main':
: undefined reference to `glutInitDisplayMode'
/tmp/ccCoeKGw.o(.text+0x172): In function `main':
: undefined reference to `glutInitWindowSize'
/tmp/ccCoeKGw.o(.text+0x186): In function `main':
: undefined reference to `glutInitWindowPosition'
/tmp/ccCoeKGw.o(.text+0x192): In function `main':
: undefined reference to `glutCreateWindow'
/tmp/ccCoeKGw.o(.text+0x1a3): In function `main':
: undefined reference to `glutDisplayFunc'
/tmp/ccCoeKGw.o(.text+0x1a8): In function `main':
: undefined reference to `glutMainLoop'
/tmp/ccCoeKGw.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status


Kann irgendjemand was damit anfangen... Habe alles genau durchgeschaut, und sehe leider keine Syntaxfehler... ☹
lg xecto

tux21b Team-Icon

Avatar von tux21b

Anmeldungsdatum:
15. August 2005

Beiträge: 1698

Wohnort: Linz.at

Ich vermute einmal, dass du die OpenGL-Bibliothek beim Kompilieren nicht übergeben hast (-lGL). Ansonten poste einmal dein Makefile bzw. den Aufruf von gcc.

xecto Team-Icon

(Themenstarter)

Anmeldungsdatum:
1. März 2005

Beiträge: 1349

Wohnort: Österreich, Baden

den aufruf habe ich aus dem wiki....

gcc glut.c -o ./glut


lg xecto

tux21b Team-Icon

Avatar von tux21b

Anmeldungsdatum:
15. August 2005

Beiträge: 1698

Wohnort: Linz.at

probiers jetzt einmal mit -lGL dahinter. Das würde dann so ausschauen:

gcc glut.c -o ./glut -lGL

vielleicht musst du auch noch "-lglut" oder "-lGLU" zusätzlich verwenden. Ich habe GLUT aber nie verwendet, darum weiß ich das nicht.

xecto Team-Icon

(Themenstarter)

Anmeldungsdatum:
1. März 2005

Beiträge: 1349

Wohnort: Österreich, Baden

etienne@xecto:~/Projects/adresse$ gcc adresse.cpp -o ./glut -lGL
/tmp/ccsCKCaD.o(.text+0x152): In function `main':
: undefined reference to `glutInit'
/tmp/ccsCKCaD.o(.text+0x15e): In function `main':
: undefined reference to `glutInitDisplayMode'
/tmp/ccsCKCaD.o(.text+0x172): In function `main':
: undefined reference to `glutInitWindowSize'
/tmp/ccsCKCaD.o(.text+0x186): In function `main':
: undefined reference to `glutInitWindowPosition'
/tmp/ccsCKCaD.o(.text+0x192): In function `main':
: undefined reference to `glutCreateWindow'
/tmp/ccsCKCaD.o(.text+0x1a3): In function `main':
: undefined reference to `glutDisplayFunc'
/tmp/ccsCKCaD.o(.text+0x1a8): In function `main':
: undefined reference to `glutMainLoop'
/tmp/ccsCKCaD.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status

lg xecto

umarmung Team-Icon

Avatar von umarmung

Anmeldungsdatum:
26. Oktober 2004

Beiträge: 5632

tux123 hat geschrieben:

[...]vielleicht musst du auch noch "-lglut"

[...]

gcc -lglut glut.c -o glut

...und warum springst du plötzlich von .c nach .cpp ?

xecto Team-Icon

(Themenstarter)

Anmeldungsdatum:
1. März 2005

Beiträge: 1349

Wohnort: Österreich, Baden

umarmung hat geschrieben:

tux123 hat geschrieben:

[...]vielleicht musst du auch noch "-lglut"

[...]

gcc -lglut glut.c -o glut

...und warum springst du plötzlich von .c nach .cpp ?

Danke!
Es funktioniert!!!!!!!!!!!
Übrigens war das nur ein Test file, die Endung ist eigentlich egal oder?
lg xecto

tux21b Team-Icon

Avatar von tux21b

Anmeldungsdatum:
15. August 2005

Beiträge: 1698

Wohnort: Linz.at

Die Endung ist eigentlich nicht egal 😉
Der gcc entscheidet anhand der Endung, welche Unterprogramme (z.B. ls, as usw.) aufgerufen werden müssen, und welche Bibliotheken mitgelinkt werden.

Da C++ aber "nur" eine Art Erweiterung von C ist, ist es nicht so schlimm, jedoch würde ich mir schon vorher immer überlegen ob du ein c++ oder ein c Programm schreiben willst.

Wenn du mit C++ programmieren willst, dann solltest du auch das Frontend g++ statt gcc verwenden. Dabei wird dann auch die STL automatisch mitgelinkt. Schau dir vielleicht einmal diesen Wiki-Beitrag an: programmierung:gcc

Ansonsten frohes Programmieren mit OpenGL!

Gruß
tux123

xecto Team-Icon

(Themenstarter)

Anmeldungsdatum:
1. März 2005

Beiträge: 1349

Wohnort: Österreich, Baden

das wiki Beitrag was das erste was ich mir durchgelesen habe.. 😉

bin erst ganz ganz am Anfang...
Wenigstens funktioniert schon dieses weiße quadrat...
lg xecto

Antworten |