OpenGL und 64 Bit



  • Hallo!
    Ich verwende Windows 7 und MSVC++ 08 und möchte gerne GLFW zum Laufen bringen.
    Allerdings bekomme ich viele LNK 2019 Errors.

    Ich habe msvc++ 08, microsoft sdk und glfw installiert. Allerdings scheitert der OpenGL installer mit einer Inkompatibilitätsmeldung wegen der 64 Bit Version von Windows.

    Die LNK 2019 sehen so aus:

    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glEnd@0" in Funktion ""void __cdecl renderScene(void)" (?renderScene@@YAXXZ)".
    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glVertex3f@12" in Funktion ""void __cdecl renderScene(void)" (?renderScene@@YAXXZ)".
    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glColor3f@12" in Funktion ""void __cdecl renderScene(void)" (?renderScene@@YAXXZ)".
    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glBegin@4" in Funktion ""void __cdecl renderScene(void)" (?renderScene@@YAXXZ)".
    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwGetWindowParam" in Funktion "_main".
    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwGetKey" in Funktion "_main".
    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwSwapBuffers" in Funktion "_main".
    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glClear@4" in Funktion "_main".
    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwTerminate" in Funktion "_main".
    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwOpenWindow" in Funktion "_main".
    1>testprojekt2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwInit" in Funktion "_main".
    1>MSVCRTD.lib(wcrtexew.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_wWinMain@16" in Funktion "___tmainCRTStartup".
    1>MSVCRTD.lib(wcrtexew.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__InterlockedExchange@8" in Funktion "___tmainCRTStartup".
    usw...
    

    Das Programm sollte eigentlich nur ein Fenster erzeugen und ein paar Primitives zeichnen.

    Gibt es eine eigene 64 Bit Version für OGL bzw habe ich etwas Wichtiges vergessen?
    Ich würde mich freuen, wenn ihr mir sagen könntet wo der Fehler liegt.

    MfG



  • Was für ein OpenGL Installer? Die OpenGL-Treiber sind die Deine Grafikkartentreiber. Du hast nur vergessen opengl32.lib zu linken und am besten linkst Du die glu32.lib auch gleich mit. Ausserdem hat Dein Projekt keine WinMain. Die Libraries von glfw hast Du auch nicht gelinkt.
    rya.



  • Scorcher24 schrieb:

    Was für ein OpenGL Installer? Die OpenGL-Treiber sind die Deine Grafikkartentreiber. Du hast nur vergessen opengl32.lib zu linken und am besten linkst Du die glu32.lib auch gleich mit. Ausserdem hat Dein Projekt keine WinMain. Die Libraries von glfw hast Du auch nicht gelinkt.
    rya.

    Ein Installer den ich aus einem Tutorial hatte. Das Problem war aber ein anderes.
    Ich habe lediglich das SUBSYSTEM auf console setzen müssen, da ich keine winmain hatte.



  • Nur so am Rande: Ich habe mal irgendwo gelesen, dass unter Windows x64 die OpenGL32.dll in Wirklichkeit eine 64-bit Dll sei; das ist doch schwachsinnig 😮



  • /rant/ schrieb:

    Nur so am Rande: Ich habe mal irgendwo gelesen, dass unter Windows x64 die OpenGL32.dll in Wirklichkeit eine 64-bit Dll sei; das ist doch schwachsinnig 😮

    So schwachsinnig ist das gar nicht. Wie gesagt, OpenGL wird durch die Grafikkartentreiber bereitsgestellt. Und bei einem 64bit System sind das auch 64 bit Treiber. Also ich sehe da jetzt schon den Sinn bzw die Ursache. Weiss aber ehrlich gesagt gerade auch nix genaues über die Bereitstellung von OpenGL auf Windows.
    rya.



  • Scorcher24 schrieb:

    /rant/ schrieb:

    Nur so am Rande: Ich habe mal irgendwo gelesen, dass unter Windows x64 die OpenGL32.dll in Wirklichkeit eine 64-bit Dll sei; das ist doch schwachsinnig 😮

    So schwachsinnig ist das gar nicht. Wie gesagt, OpenGL wird durch die Grafikkartentreiber bereitsgestellt. Und bei einem 64bit System sind das auch 64 bit Treiber. Also ich sehe da jetzt schon den Sinn bzw die Ursache. Weiss aber ehrlich gesagt gerade auch nix genaues über die Bereitstellung von OpenGL auf Windows.
    rya.

    Das ist schon klar, aber ich denke, dann soll die Dll doch OpenGL64.dll heissen oder? Weil ein 32-bit Subsystem gibts ja auch 😮



  • /rant/ schrieb:

    Scorcher24 schrieb:

    /rant/ schrieb:

    Nur so am Rande: Ich habe mal irgendwo gelesen, dass unter Windows x64 die OpenGL32.dll in Wirklichkeit eine 64-bit Dll sei; das ist doch schwachsinnig 😮

    So schwachsinnig ist das gar nicht. Wie gesagt, OpenGL wird durch die Grafikkartentreiber bereitsgestellt. Und bei einem 64bit System sind das auch 64 bit Treiber. Also ich sehe da jetzt schon den Sinn bzw die Ursache. Weiss aber ehrlich gesagt gerade auch nix genaues über die Bereitstellung von OpenGL auf Windows.
    rya.

    Das ist schon klar, aber ich denke, dann soll die Dll doch OpenGL64.dll heissen oder? Weil ein 32-bit Subsystem gibts ja auch 😮

    Muss die Datei nicht opengl.dll heissen? Nach dem Standard? Hab auf die schnell nix gefunden, aber ich kanns mir vorstellen.
    rya.


Log in to reply