Probleme bei Einrichtung von OpenGl
-
Habe opengl32.lib als letztes hinzugefügt, bekomme aber noch die selben Fehlermeldungen.
Kann es sein das eine GLFW dll fehlt? Beim kompilieren von GLFW wurde nur keine erstellt.
-
Wenn ich das Programm im x86 Modus kompiliere klappt es.
-
dann hast du glfw nur in 32 bit installiert und nicht in 64bit
-
Bei Source Package gab es nur die eine Version, habe auch versucht die als 64bit zu kompilieren,was aber nicht funktioniert hat.
-
Es gibt pre-compiled binaries für Windows (32/64Bit)...
https://www.glfw.org/download.htmlUnd wenn das selbst bauen nicht funktioniert, dann hast du vermutlich (da du keine Fehlermeldung lieferst) die abhängigkeiten von glfw nicht in 64bit beim bauen angegeben/verwendet
-
Nachdem ich alles nochmal neu kompiliert habe, funktioniertes jetzt im x64 Modus.
-
Hallo,
Ich wollte jetzt statt glfw sfml verwenden, nur wenn ich dann versuche Glew zu initialisieren stürzt das Programm ab.#define GLEW_STATIC #include <GL/glew.h> #include <SFML/OpenGL.hpp> #include <SFML/Window.hpp> int main() { sf::Window window(sf::VideoMode(800, 600), "OpenGL", sf::Style::Default, sf::ContextSettings(32)); window.setVerticalSyncEnabled(true); window.setActive(true); bool running = true; sf::Event event; if (GLEW_OK != glewInit) { std::cout << "Glew Fehler" << std::endl; std::cout << glewGetErrorString << std::endl; return EXIT_FAILURE; }
Die zusätzlichen Abhängigkeiten sind:
libglew32.lib
glew32.lib
sfml-system.lib
sfml-graphics.lib
sfml-window.lib
sfml-audio.lib
opengl32.lib
-
Was eine miese Falle. Du rufst die Funktion 'glewInit' tatsächlich gar nicht auf, dazu fehlen die Klammern. Es compiliert trotzdem, denn GLEW_OK ist (vermutlich) eine Konstante mit dem Wert 0, welchen du nicht etwa mit dem Rückgabewert von 'glewInit' vergleichst, sondern mit der Adresse dieser Funktion. Und weil die stets ungleich 0 ist, wird der if-Zweig aufgeführt, die Nachricht ausgegeben und das Programm beendet sich (was du vermutlich unter 'abstürzen' verstehst).
-
Warnungen des compilers aktivieren. Die melden sowas bei höheren warn leveln.
-
Danke, jetzt klappt es. Habe ganz übersehen das dort Klammern fehlen. Das Warnlevel habe jetzt auch höher gesetzt.