[C++]Einstiegspunkt Fehler. OpenGL/SDL

Joo aber ich denke das die Dll nicht zu Errors führt oder? Sie würde beim Fehlen ja nur verursachen das das Programm nicht läuft und weil ich überall reinkopiert habe müsste es ja eh gehen...
 
Wenn es nötig ist kann ich ja ein Foto Hochladen schreib dann einfach.
Ich bin ja der Meinung es wäre einfacher ein bißchen Text zu kopieren und einzufügen, aber wenn du lieber Screenshots machst, dann bitte.

Du hast uns bis jetzt nur dürftige Anhaltspunkte geliefert wo der Fehler sein könnte. Und grundsätzlich zu sagen "ich habe es so gemacht wie da" und es wirklich so gemacht zu haben, sind zwei verschiedene Paar Schuhe.

Anscheinend hast du auch mehrere Dinge ausprobiert und wirfst uns das hier jetzt durcheinander hin. Zeig am besten konkret den jetzigen Code und die Compileraufrufe etc.

Gruß
 
Code:
C++:
#include <iostream>
#include <Windows.h>
#include <SDL.h>
#include <GL/gl.h>
#include <GL/glu.h>
 
 
 
void init()
{
    glClearColor(0.0,0.0,0.0,1.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45.0,640.0/480.0,1.0,500.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}
 
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_TRIANGLES);
        glVertex3f(0.0,2.0,-5.0);
        glVertex3f(-2.0,-2.0,-5.0);
        glVertex3f(2.0,-2.0,-5.0);
    glEnd();
}
 
int main()
{
    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_Surface* screen=SDL_SetVideoMode(640,480,32,SDL_SWSURFACE|SDL_OPENGL);
    bool running=true;
    Uint32 start;
    SDL_Event event;
    init();
    while(running)
    {
        start=SDL_GetTicks();
        while(SDL_PollEvent(&event))
        {
            switch(event.type)
            {
                case SDL_QUIT:
                    running=false;
                    break;
            }
        }
        display();
        SDL_GL_SwapBuffers();
        if(1000/30>(SDL_GetTicks()-start))
            SDL_Delay(1000/30-(SDL_GetTicks()-start));
    }
    SDL_Quit();
    return 0;
}

Fehler:
Code:
Fehler	17	error LNK1120: 16 nicht aufgelöste externe Verweise.	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\Debug\OpenGlTest.exe
Fehler	7	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glBegin@4" in Funktion ""void __cdecl display(void)" (?display@@YAXXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	8	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glClear@4" in Funktion ""void __cdecl display(void)" (?display@@YAXXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	4	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glClearColor@16" in Funktion ""void __cdecl init(void)" (?init@@YAXXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	5	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glEnd@0" in Funktion ""void __cdecl display(void)" (?display@@YAXXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	2	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glLoadIdentity@0" in Funktion ""void __cdecl init(void)" (?init@@YAXXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	3	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glMatrixMode@4" in Funktion ""void __cdecl init(void)" (?init@@YAXXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	6	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glVertex3f@12" in Funktion ""void __cdecl display(void)" (?display@@YAXXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	1	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_gluPerspective@32" in Funktion ""void __cdecl init(void)" (?init@@YAXXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	16	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\MSVCRTD.lib(crtexe.obj)
Fehler	10	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_Delay" in Funktion ""int __cdecl SDL_main(void)" (?SDL_main@@YAHXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	13	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_GetTicks" in Funktion ""int __cdecl SDL_main(void)" (?SDL_main@@YAHXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	11	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_GL_SwapBuffers" in Funktion ""int __cdecl SDL_main(void)" (?SDL_main@@YAHXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	15	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_Init" in Funktion ""int __cdecl SDL_main(void)" (?SDL_main@@YAHXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	12	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_PollEvent" in Funktion ""int __cdecl SDL_main(void)" (?SDL_main@@YAHXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	9	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_Quit" in Funktion ""int __cdecl SDL_main(void)" (?SDL_main@@YAHXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Fehler	14	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_SetVideoMode" in Funktion ""int __cdecl SDL_main(void)" (?SDL_main@@YAHXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj

Und im Anhang die Bilder. Ich hab auch die x86 benutzt geht auch nicht....
Falls noch fragen sind kannst du dir ja auch die Datei Runterladen.
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    94,9 KB · Aufrufe: 41
  • 12.png
    12.png
    96,8 KB · Aufrufe: 34
Zuletzt bearbeitet von einem Moderator:
Leider ist das immer noch sehr unvollständig und nicht das was ich wissen wollte.

Compiler und Linker Aufruf - d.h. komplette Kommandozeile... einfacher geht es doch nun wirklich nicht.

Zumindest kann ich sehen, dass du keine OpenGL Bibliotheken linkst. Da sind Linkerfehler bezüglich OpenGL Funktionen natürlich vorhersehbar...
 
Also ich weiß nicht was du mit Kommandozeile meinst...
Damit meine ich die komplette Befehlszeile mit der Visual Studio den Kompiler und Linker aufruft.

Projekteigenschaften -> C/C++ -> Befehlszeile
Projekteigenschaften -> Linker -> Befehlszeile

\edit: Ich habe es übrigens gerade selbst ausprobiert. Ich bin nach der Anleitung aus dem Wiki vorgegangen, habe deinen Code verwendet und zusätzlich die OpenGL Bibliotheken gelinkt und ich konnte das Programm starten.

Die main bzw. SDL_main Funktion muss allerdings genau diese Signatur haben:
C:
int main(int, char**)
Gruß
 
Zuletzt bearbeitet:
Ok also ich musste den x86 Ordner nehmen und hab vergessen OpenGl einzutragen. Sorry.
Bekomme aber immer noch Fehler:
Code:
Fehler	3	error LNK1120: 1 nicht aufgelöste externe Verweise.	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\Debug\OpenGlTest.exe	1
Fehler	2	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_gluPerspective@32" in Funktion ""void __cdecl init(void)" (?init@@YAXXZ)".	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\main.obj
Warnung	1	warning LNK4098: Standardbibliothek "msvcrt.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.	C:\Users\Jonas\Documents\Visual Studio 2010\Projects\OpenGlTest\OpenGlTest\MSVCRTD.lib(cinitexe.obj)
 
Das ist auch noch logisch....Aber ich kann das Programm nicht richtig starten. Fotos im Anhang.
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    78,5 KB · Aufrufe: 28
  • 1.png
    1.png
    89,9 KB · Aufrufe: 29
Zurück