Seite 1 von 1

Prak1 Framework unter Windows/eclipse

Verfasst: 26. Okt 2010 13:54
von umfk
Hallo Leute,

ich bekomm das Framework nicht so ganz zum Laufen, vielleicht kann mir ja jemand helfen, der die gleiche Konfiguration(Windows/eclipse) benutzt.

glut und glew sind installiert (und getestet), ich hab CMake benutzt (mit dem Eclipse MinGW Generator), wenn ich aber in eclipse die Makefile ausführe, bekomme ich folgende Fehler:

Code: Alles auswählen

**** Build of configuration Default for project prak1 ****

make 
-- Configuring done
-- Generating done
-- Build files have been written to: E:/Workspace/prak1/build
Linking CXX executable main.exe
C:\MinGW\bin\g++.exe     -Wl,@CMakeFiles\main.dir\objects1.rsp  -o main.exe -Wl,--out-implib,libmain.dll.a -Wl,--major-image-version,0,--minor-image-version,0  -lGLEW32 C:\Windows\System32\glut32.dll -lglu32 -lopengl32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x16e): undefined reference to `_imp____glewGetProgramiv'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x1a4): undefined reference to `_imp____glewGetProgramInfoLog'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x210): undefined reference to `_imp____glewGetShaderiv'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x246): undefined reference to `_imp____glewGetShaderInfoLog'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x5cd): undefined reference to `_imp____glewCreateShader'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x5e6): undefined reference to `_imp____glewCreateShader'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x600): undefined reference to `_imp____glewShaderSource'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x630): undefined reference to `_imp____glewShaderSource'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x65f): undefined reference to `_imp____glewCompileShader'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x674): undefined reference to `_imp____glewCompileShader'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x689): undefined reference to `_imp____glewCreateProgram'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x699): undefined reference to `_imp____glewAttachShader'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x6b9): undefined reference to `_imp____glewAttachShader'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x6d8): undefined reference to `_imp____glewLinkProgram'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x6ed): undefined reference to `_imp____glewDeleteShader'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x702): undefined reference to `_imp____glewDeleteShader'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x722): undefined reference to `_imp____glewGetProgramiv'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x87c): undefined reference to `_imp____glewDeleteProgram'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x9cf): undefined reference to `_imp____GLEW_ARB_vertex_shader'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0x9d9): undefined reference to `_imp____GLEW_ARB_fragment_shader'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0xb8a): undefined reference to `_imp____glewUseProgram'
CMakeFiles/main.dir/main.cpp.obj:main.cpp:(.text+0xba1): undefined reference to `_imp____glewUseProgram'
collect2: ld returned 1 exit status
make[2]: *** [main.exe] Error 1
make[1]: *** [CMakeFiles/main.dir/all] Error 2
make: *** [all] Error 2
Bin für jeden Hinweis dankbar!

Re: Prak1 Framework unter Windows/eclipse

Verfasst: 26. Okt 2010 14:02
von niewhner
Ich benutze Visual Studio und Windows und habe wohl den gleichen Fehler. Glut und glew sind installiert.

Code: Alles auswählen

Fehler	1	error LNK2001: Nicht aufgelöstes externes Symbol "__imp____glewGetProgramInfoLog".	C:\Users\Ich\Documents\Visual Studio 2010\Projects\GDV1\GDV1\main.obj	GDV1
Fehler	2	error LNK2001: Nicht aufgelöstes externes Symbol "__imp____glewGetProgramiv".	C:\Users\Ich\Documents\Visual Studio 2010\Projects\GDV1\GDV1\main.obj	GDV1
Fehler	3	error LNK2001: Nicht aufgelöstes externes Symbol "__imp____glewGetShaderInfoLog".	C:\Users\Ich\Documents\Visual Studio 2010\Projects\GDV1\GDV1\main.obj	GDV1
Fehler	4	error LNK2001: Nicht aufgelöstes externes Symbol "__imp____glewGetShaderiv".	C:\Users\Ich\Documents\Visual Studio 2010\Projects\GDV1\GDV1\main.obj	GDV1
.....

Re: Prak1 Framework unter Windows/eclipse

Verfasst: 26. Okt 2010 14:16
von thomas_kalbe
hm, die glew library wird irgendwie nicht gefunden.
Stellt mal sicher, ob GLEW32.lib oder .dll (Visual Studio) bzw. GLEW32.a (gcc) überhaupt existieren, und ob der
Linker den Pfad findet (im VS kann man die Ordner, in denen nach dlls gesucht wird, irgendwo spezifizieren, bei Eclipse geht das bestimmt auch irgendwie).

t.

Re: Prak1 Framework unter Windows/eclipse

Verfasst: 26. Okt 2010 14:43
von tobiasp
Hatte das Problem auch: Ursache war, dass ich von GLEW die 64 bit Bibliothek hatte, das aber net mit meinem VS-Projekt kompatibel war und der Linker die lib-Datei ignoriert hatte. Nachdem ich die 32-bit Version runtergeladen hatte, lief alles :)

Re: Prak1 Framework unter Windows/eclipse

Verfasst: 26. Okt 2010 16:07
von oliver_g
Bei mir hat Folgendes nach der Erstellung eines MSVC-Projekts mit cmake funktioniert:

Unter MSVC 10:
Header nach ...\Visual Studio 10\VC\include\GL
*.lib nach ...\Visual Studio 10\VC\lib
*.dll in beliebigem Ordner im Pfad

Re: Prak1 Framework unter Windows/eclipse

Verfasst: 26. Okt 2010 16:13
von niewhner
Der Linker findet die Datei. Hab glut32.lib, opengl32.lib und glu32.lib eingebunden

Edit: Ich Idiot hab beim durchlesen meines Post bemerkt, dass ich ja glew vergessen habe. glew32-.lib eingebunden und schon gehts :P

Re: Prak1 Framework unter Windows/eclipse

Verfasst: 26. Okt 2010 16:19
von umfk
Ich hab gelesen, dass die .dll auch unter MinGW funktionieren sollte, hab mir trotzdem mal ne .a kompiliert.
Habe auch den header in include/GL, die .lib und die .a in lib und die dll im Pfad. Klappt trotzdem nicht.

PS: Hab grad woanders das hier gefunden, hilft mir aber nicht:
Problem Solved, Glew lib not initialized at the right time :)
Sagt das jemandem was?

Re: Prak1 Framework unter Windows/eclipse

Verfasst: 26. Okt 2010 17:02
von Mergian
Also ich hab Netbeans mit MinGW und das gleiche Problem gehabt.

Lösung bei mir war, anstelle der glew32.lib die glew32.dll in den lib Ordner kopieren und in den Projekteinstellungen unter Linker in folgender Reihenfolge (die ist wichtig!) die Libs eingebunden.

- glut32
- glu32
- opengl32
- glew32

Re: Prak1 Framework unter Windows/eclipse

Verfasst: 27. Okt 2010 21:25
von umfk
Ich hab keine Ahnung warum der glew nicht gefunden hat, da die library am selben Ort wie alle anderen Libraries ist, aber ich hab jetzt einfach per Hand die build/CMakeFiles/main.dir/link.txt editiert und "-lglew32" durch den expliziten Pfad zu der glew32.dll ersetzt und es läuft. Nicht sehr elegant aber was solls. Danke an alle für die Hilfe.