2016-07-30 25 views
3

Ich folgte dieses Thema: Building glew on windows with mingw aber etwas schief ging hier:mehr Definition von `DllMainCRTStartup @ 12' beim Aufbau glew auf Fenster mit mingw32

gcc -shared -Wl, -soname, libglew32.dll -Wl, - -out-implib, lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32

ich diesen Fehler:

C: \ MinGW \ dev_lib \ glew-2.0.0> gcc -shared -Wl, -soname, libglew32.dll -Wl, - out-implib, lib/libglew32.dll.a -o lib/glew32. dll src/glew.o -L/mingw/lib - lglu32 - lopengl32 - lgdi32 - luser32 - lkernel32 src/glew.o: glew.c :(.text + 0x28f80): Mehrfachdefinition von `DllMainCRTStartup @ 12 ' c:/mingw/bin /../ lib/gcc/mingw32/4.9.3 /../ ../../dllcrt2.o:(.text+0x60): zuerst hier definiert collect2.exe: Fehler: ld zurückgegeben 1 Exit-Status

Vielen Dank für Ihre Hilfe.

Antwort

6

Sie müssen wie so mit der -nostdlib Option verknüpfen:

gcc -nostdlib -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 

Glew DllMainCRTStartup definiert, die auch in der CRT definiert ist. Daher dein Problem.

+1

Wenn das stimmt, wenig Zweifel, es ist der Linker-Fehler gegeben, das ist darüber hinaus unglaublich böse. -nostdlib ist sicherlich keine gültige Problemumgehung, sehr wichtig, um den CRT in einer DLL richtig zu initialisieren. Richtiger Rat sollte sicher sein, Glew immer nur in einem EXE-Projekt zu verwenden. Dafür wurde es gemacht, ein einfacher Weg, um mit OpenGL zu beginnen. –