множественное определение `DllMainCRTStartup @ 12 'при сборке glew на windows с 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

Я получаю эту ошибку:

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)

Решение Вопроса

Вам необходимо связаться с-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. Отсюда твоя проблема.

 Hans Passant03 авг. 2016 г., 01:01
Если это правда, мало сомнений в том, что это ошибка компоновщика, это невероятно неприятно. -nostdlib, безусловно, не является допустимым обходным путем, очень важно правильно инициализировать CRT в DLL. Правильный совет, безусловно, должен быть только когда-либо использовать Glew в проекте EXE. Это то, для чего это было сделано, простой способ начать работу с OpenGL.

Ваш ответ на вопрос