使用 mingw32 在 windows 上构建 glew 时对“DllMainCRTStartup@12”的多重定义
multiple definition of `DllMainCRTStartup@12' while building glew on windows with mingw32
我关注了这个主题: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 个退出状态
感谢您的帮助。
您需要 link 使用 -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 定义了 CRT 中也定义的 DllMainCRTStartup。因此你的问题。
我关注了这个主题: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 个退出状态
感谢您的帮助。
您需要 link 使用 -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 定义了 CRT 中也定义的 DllMainCRTStartup。因此你的问题。