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

Qua*_*ick 4 c windows gcc glew mingw

我跟着这个话题:用mingw在windows上构建glew但是这里出了点问题:

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退出状态

感谢帮助.

小智 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
Run Code Online (Sandbox Code Playgroud)

Glew定义了DllMainCRTStartup,它也在CRT中定义.因此你的问题.