2011-01-17 18 views
17

Uczę się OpenGL, wykonując redbook. Kiedy dochodzę do około strony 90, potrzebuję użyć glGenBuffers(); Następnie potrzebuję zainstalować "glew". wykonując czynności opisane w www.cs.uiowa.edu/~cwyman/classes/common/howto/winGLUT.htmlGlew w VS 2010: nierozwiązany symbol zewnętrzny __imp__glewInit

pobrać glew.zip z glew.sourceforge.net/ i rozpakować pliki.

kładę

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

Po tym, zbudować mojego projektu w VS 2010 i Linker->input, ja dodaj zależności glew32.lib.

Ale kiedy go zbudować, mam error

unresolved external symbol __imp__glewInit

spędzam cały dzień, aby szukać rozwiązań, ale nie znaleźć.

Mam nadzieję, że ktoś może mi w tym pomóc.

Odpowiedz

7

Tak jak powiedziałem wcześniej Hans Passant (On odpowiedział na moje pytanie, ale wcześniej usunięte odpowiedź.)

muszę skompilować kod źródłowy GLEW.

Jak go skompilować, zobacz OpenGL: How to compile glew32.dll from source file.

Następnie otrzymasz glew32d.dll i glew32d.lib.

  • Put glew32d.dll w c:\windows\sysWOW64 (ja też umieścić go w system i system32).
  • Put glew32d.lib w C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
  • Put glew.h w C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include

Wtedy to będzie działać.

+0

Spędzam dwa dni, aby to zrozumieć z pomocą Hansa Passanta i Marka. – NoviceCai

+1

Miałem ten sam problem. Zacząłem od nowa od zera i działało to: http://www.3dgraphicsfoundations.com/visstudio.html – abimelex

+0

@abimelex, dzięki za zamieszczenie linku, zapomniałem kroku, aby zdefiniować dodatkowe zależności w VS, jechałem ja orzechy –

1

Upewnij się, że dodasz odpowiedni dodatek do niego. Zrobiłem wszystkie szalone rzeczy z biblioteki i jakoś zapomniałem włączyć plik nagłówkowy.

W moim przypadku było to:

#include <GL/glew.h> 
5

Innym możliwym rozwiązaniem i mniej pracy niż kompilacji dll od źródła, jest po prostu użyć bitowe pliki binarne 32. Windows 7 64bit po prostu nie chce współpracować z 64-bitowymi plikami binarnymi, które obecnie są dostępne.

Oto ładny ogólny podręcznik konfiguracji, jeśli ktoś potrzebuje.http://openglbook.com/setting-up-opengl-glew-and-freeglut-in-visual-c/

35

ponieważ nie jest już wspomniano, moim problemem było to, że łączenie przeciwko statycznej wersji GLEW (glew32s.lib), ale nie zdefiniowano symbol GLEW_STATIC preprocesora (tak nagłówek byłem kompilacji przeciwko skutecznie nie zrobił pasuje do biblioteki, z którą się łączyłem).

1

Walczyłem z tym również przez kilka godzin. Wtedy zdałem sobie sprawę, że mój program to win32 zamiast x64. Byłem w tym pliku glew.lib pod folderem x64, kiedy powinienem używać glew.lib pod folderem win32.

Powiązane problemy