kann kein openGL kompilieren...
-
hi,
nachdem ich mich schon durch die SDL, die recht einfach war, gearbeitet habe, wurde in einem Tutorial openGL eingeführt, doch nicht gesagt, wie man dann den sourcecode kompilieren kann...
wenn ich die SDL_openGL.h einbinde, dann geht das Programm ja noch, doch wenn ich was mit openGL dann machen möchte, dann kommt immer diese meldung:
[Linker error] undefined reference to `glClearColor@16' (z.B.)
was muss ich in der Commandline noch anhängen lassen? oder wie bekomme ich diesen fehler weg? bei bedarf kann ich auch den Sourcecode posten...
-
Du solltest vielleicht die passende Bibliothek einbinden, die diese Funktion bereitstellt. Damit du etwas lernst, empfehle ich die Textsuche mit eben diesem Funktionsnamen im Ordner deiner Bibliotheken durchzuführen
-
Weil ich heute einen guten Tag habe gebe ich dir mein streng geheimes, selbst gebasteltes, Dev-C++ SDL + OpenGL Template, einfach in den Template Ordner kopieren und du kannst ein neues Projekt auswählen.
SDL + OpenGL.template schrieb:
[Template]
ver=1
Name=SDL + OpenGL
Icon=SDL.ico
Description=Create a multimedia application or game with SDL and OpenGL
Catagory=MultiMedia[Unit0]
CName=main.c
CppName=main.cpp
C=SDL + OpenGL_c.txt
Cpp=SDL + OpenGL_c.txt[Project]
UnitCount=1
Type=0
IsCpp=0
Compiler=-I"<INCLUDE>\SDL" -Dmain=SDL_main
Linker=-lmingw32 -lSDLmain -lSDL -liberty -lopengl32
Name=SDL + OpenGL Project
ProjectIcon=SDL.icoSDL + OpenGL_c.txt schrieb:
#include <iostream>
using namespace std;#include <SDL/SDL.h>
#include <SDL/SDL_opengl.h>int main(int argc, char **argv)
{
SDL_Surface *screen;
int running;if(SDL_Init(SDL_INIT_VIDEO)) /* OpenGL-Bildschirmmodus */
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);screen = SDL_SetVideoMode(640, 480, 0, SDL_OPENGL);
if (!screen) {
cout << "Konnte Bildschirmmodus nicht setzen:\n"
<< SDL_GetError();
exit(1);
}/* Programmschleife */
running = 1;
while(running) {
SDL_Event event;while(SDL_PollEvent(&event)) {
switch(event.type) {
case SDL_KEYDOWN:
running = 0;
break;
case SDL_QUIT:
running = 0;
break;
}
}// Pageflip: Back- und Frontbuffer werden vertauscht
SDL_GL_SwapBuffers();
}return 0;
}
-
danke an alle..... nun funktioniert es...
ich habe ja die richtige lib eingebunden, nur nicht das angegeben, was der linker anhängen soll... jetzt habe ich es geschafft... danke für die schnellen antworten!
-
Probier trotzdem das template aus, spart arbeit
-
wie funktioniert das denn genau? und wie wende ich es an? wenn es arbeit erspart, dann würde ich es gerne anwenden(bin so faul ;))
-
Wie gesagt einfach die Dateien SDL + OpenGL.template und SDL + OpenGL_c.txt in den Template Ordner von Dev-C++ kopieren, dann kannst du ein neues Projekt auswählen, alle Linkereinstellungen etc. sollten richtig sein...