2011-01-17 6 views
17

Ich lerne OpenGL, indem ich dem Redbook folge. Wenn ich um Seite 90 komme, brauche ich glGenBuffers(); Dann muss ich "glew" installieren. indem Sie die Schritte in www.cs.uiowa.edu/~cwyman/classes/common/howto/winGLUT.htmlGlew in VS 2010: ungelöstes externes Symbol __imp__glewInit

ich herunterladen glew.zip aus glew.sourceforge.net/ und die Dateien entpacken.

Ich habe

  • glew.h in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
  • glew32.lib in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib und
  • glew32.dll in C:\Windows\System32

Danach baue ich mein Projekt in VS 2010 und in Linker->input, I Abhängigkeiten hinzufügen glew32.lib.

Aber wenn ich es bauen, ich habe Fehler

unresolved external symbol __imp__glewInit

ich den ganzen Tag verbringen Lösungen zu suchen, aber nicht finden war.

Hoffe jemand kann mir dabei helfen.

Antwort

7

So wie Hans Passant früher gesagt (beantwortet er meine Frage früher, aber löschte die Antwort.)

ich den Quellcode von glew kompilieren müssen.

Wie kompiliert man es, siehe OpenGL: How to compile glew32.dll from source file.

Dann erhalten Sie glew32d.dll und glew32d.lib.

  • glew32d.dll in c:\windows\sysWOW64 Put (Ich habe es auch in system und system32).
  • Put glew32d.lib in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
  • Put glew.h in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include

Dann wird es funktionieren.

+0

Ich verbrachte zwei Tage, um herauszufinden, mit Hilfe von Hans Passant und Mark. – NoviceCai

+1

Ich hatte das gleiche Problem. Ich begann wieder von vorne mit diesem Handbuch und es funktionierte: http://www.3dgraphicsfoundations.com/visstudio.html – abimelex

+0

@abimelex, danke für das Posten des Links, ich hatte den Schritt vergessen, zusätzliche Abhängigkeiten in VS zu definieren, fuhr ich verrückt –

1

Stellen Sie außerdem sicher, dass Sie das entsprechende Include hinzufügen. Ich habe all die verrückten Bibliotheks-Sachen gemacht und irgendwie vergessen, die Header-Datei aufzunehmen.

In meinem Fall war es:

#include <GL/glew.h> 
5

Eine andere mögliche Lösung und weniger Arbeit als die DLL aus dem Quellcode kompilieren, ist nur die 32-Bit-Binärdateien zu verwenden. Windows 7 64bit möchte einfach nicht mit den 64-Bit-Binärdateien zusammenarbeiten, die sie derzeit zur Verfügung haben.

Hier ist eine ziemlich allgemeine Setup-Anleitung, wenn jemand braucht.http://openglbook.com/setting-up-opengl-glew-and-freeglut-in-visual-c/

35

Da es nicht bereits erwähnt ist, mein Problem war, dass ich die Verknüpfung gegen die statische Version von glew (glew32s.lib), aber ich hatte das GLEW_STATIC Präprozessorsymbol nicht definiert (so der Header ich gegen effektiv zusammenstellte didn nicht mit der Bibliothek übereinstimmen, gegen die ich verlinkt habe.

1

Ich kämpfte mit diesem auch für ein paar Stunden. Dann erkannte ich, dass mein Programm win32 statt x64 ist. Ich habe die glew.lib unter dem x64-Ordner eingefügt, wenn ich die glew.lib unter dem win32-Ordner verwenden soll.

Verwandte Themen