在使用mingw32在windows上构建glew时,多个定义`DllMainCRTStartup @ 12'

时间:2016-07-30 11:08:35

标签: c windows gcc mingw glew

我遵循了这个话题:Building glew on windows with mingw但是这里出了点问题:

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

我收到此错误:

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):`DllMainCRTStartup @ 12'的多重定义 c:/ mingw / bin /../ lib / gcc / mingw32 / 4.9.3 /../../../ dllcrt2.o :(。text + 0x60):首先在这里定义 collect2.exe:错误:ld返回1退出状态

感谢您的帮助。

1 个答案:

答案 0 :(得分:7)

您需要链接-nostdlib选项,如下所示:

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,它也在CRT中定义。因此你的问题。