Installation von OpenGl
-
Inzwischen konnte ich mein Programm kompliieren, aber bei Linken klappts noch nicht. Es kommt fehlermeldung error LNK2019.
Ja, ich weiss, dass man den Linker irrgenwie einstellen muss, damit der die
nötigen Dateien findet, aber ich weiss nicht genau wie.Als ich das beim letzten Man gemacht habe, fand ich eine Schritt für Schritt Anleitung. Diese fand ich nicht wieder.
Ich gehe auf Projekteigenschaften (Alt+f7), dann auf "Konfigurationen",
dann auf "Linker" und weiter weiss ich nicht mehr, ist zu lange her.Was muss ich nun noch machen?
-
Hast du beim Linker die richtigen Libraries als Additional Dependencies ("Zusätzliche Abhängigkeiten") eingetragen? Beachte dabei insbesondere 32 Bit vs 64 Bit. Stimmen die Suchpfade in den VC++ Directories? Wie genau lautet die Fehlermeldung?
-
So lautet die Fehlermeldung:
1>MSVCRT.lib(crtexew.obj) : error LNK2019: symbole externe non résolu _WinMain@16 référencé dans la fonction ___tmainCRTStartup
1>C:\Users\lukas\Documents\Visual Studio 2010\Projects\opengl\Debug\opengl.exe : fatal error LNK1120: 1 externes non résolusOb ich die zusätzlichen anhänigkeiten korrekt eingetragen habe bezweifle ich.
Dort habe ich einfach freeglut.lib geschrieben. Mehr habe ich da nicht gemacht
-
Du hast offenbar ein Projekt für eine Windows Anwendung erstellt und nicht für eine Konsolenanwendung. Windows Anwendungen starten nicht mit main(), sondern mit WinMain()...
-
Ja, das ist genauso.
Nun bin ich einen grossen Schritt weiter.
Ich habe das geändert und der Linker gibt nun keine Fehlermeldung mehr.
Jedoch kommt unmittelbar nach dem Programstart die Fehlermeldung, dass freeglut.dll nicht installiert sei.
Wie bereits beschrieben ist diese Datei im Ordenr System 32. Wohin gehört das Ding?
-
sulky schrieb:
Wie bereits beschrieben ist diese Datei im Ordenr System 32. Wohin gehört das Ding?
In den Ordner wo die exe liegt.
-
Ist ja super, nun gehts.
Vielen Dank.
Kannst du mir einen Tipp geben, wie ich mich mit MVc++ Linker, Complier u.s.w.
vertraut machen kann?Es ist einfach wirklich so, dass sämtlihce Einführungen in C++ sich mit Variablen, Schleifen, funktionen und Klassen befassen.
Für Freeglut funktioniert die Sache nun einmal. Noch habe ich den Ordenr SDL.
Den versuche ich nun einmal selbständig zum laufen zu bringen,
-
Wofür brauchst du denn die SDL?
-
Der Beispielcode im Tutorial beginnt mit
#include <SDL/SDL.h>
#include <GL/gl.h>
#include <GL/glu.h>Somit habe ich die SDL auch installiert. An dieser Stelle noch folgende Frage:
Die Headerdateien gl.h und glu.h habe ich nicht.
Stattdessen habe ich glut.h verwendet. Bisher funktiobniert alles.
Enspricht sich das oder werde ich da noch überraschungen erleben?
-
sulky schrieb:
Der Beispielcode im Tutorial beginnt mit
#include <SDL/SDL.h>
#include <GL/gl.h>
#include <GL/glu.h>Somit habe ich die SDL auch installiert. An dieser Stelle noch folgende Frage:
Die Headerdateien gl.h und glu.h habe ich nicht.
Stattdessen habe ich glut.h verwendet. Bisher funktiobniert alles.
Enspricht sich das oder werde ich da noch überraschungen erleben?Bei mir gibt es sowohl gl.h als auch glu.h im SDK-Verzeichnis.
On Windows you need to include the gl.h header for OpenGL 1.1 support and link against OpenGL32.lib.
Both are a part of the Windows SDK.Das neueste SDK lässt sich bei MS downloaden, es wird aber auch bereits eins mit
Visual-Studio mitinstalliert.How to get the GL library/headers?
http://stackoverflow.com/questions/3933027/how-to-get-the-gl-library-headers
-
glut.h macht bereits alles was man möglicherweise brauchen könnte:
#include "freeglut_std.h"
und diese wiederrum macht
#include <GL/gl.h> #include <GL/glu.h>
sowie das linken mit allen benötigten libs anmelden.
Es ist also egal - die beiden MS includes werden bei freeglut verwendet wenn
unter Windows kompiliert wird. Bei Apple werden andere Pfade verwendet.
Bei freeglut soll eine gewisse Plattformunabhängigkeit gegeben sein.Es wäre also sinnvoll und bequemer glut.h zu verwenden.
-
vielen dank für die Antworte merano.
Sicherheitshalber habe ich nun doch die dateien glu32.h und ähnliche heruntergeladen, damit alles so ist wie auf dem tutorial.
Nun ist der Linker wieder einmal unzufrieden mit mir. Der Compiler gibt keine Fehlermeldung.
Was habe ich nun wieder falsch gemacht?
Dies gibt der Linker an:
1>LINK : fatal error LNK1104: impossible d'ouvrir le fichier 'GLU32.obj'
-
sulky schrieb:
Was habe ich nun wieder falsch gemacht?
Dies gibt der Linker an:
1>LINK : fatal error LNK1104: impossible d'ouvrir le fichier 'GLU32.obj'Er sagt es doch: Nicht möglich die Datei 'GLU32.obj' zu öffnen.
Die Linkerprobleme hättest du mit dem von freeglut mitgelieferten Header vermutlich nicht gehabt.
-
Schon möglich, ich wollte einfach alles genau gleich machen wie es im Tutorial stand. Werde dies aber gleich ausprobieren.
Was muss ich denn jetzt machen?
Wo ist diese GLU32.obj datei? ,bzw. wo sollte SIe sein?
Woher bekomme ich die Datei?Oder ganz allgemen, wie löst man dieses Problem?
-
sulky schrieb:
Was muss ich denn jetzt machen?
Wo ist diese GLU32.obj datei? ,bzw. wo sollte SIe sein?
Woher bekomme ich die Datei?Unter Windows gibts im SDK nur eine GlU32.Lib. Möglicherweise wird irgendwo
"versehentlich" mit GlU32.obj gelinkt statt mit GlU32.Lib.Kann es sein, das es ein Beispiel aus der UNIX-Welt ist ?