Reputation: 521
It is a duplicate and I am sorry about it but I don't have any other options because I can't make comments on answers and they didn't solved my problem. Here is the original post:
Building glew on windows with mingw
And here is my problem:
1) When I try @LightningIsMyName's answer I get this error:
Makefile:1: *** missing seperator. Stop.
2) When I try @anon's answer I get this error:
Makefile:1: Makefile:1: *** commands commence before first target. Stop.
People says this andswer helped them but they didn't worked for me. I apogilize I duplicae a question somehow but I have no other chance with reputation limit for commenting. Hope you help. Thanks.
Upvotes: 3
Views: 7089
Reputation: 1
from https://github.com/nigels-com/glew/issues/223:
mkdir lib/
mkdir bin/
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c
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
ar cr lib/libglew32.a src/glew.o
gcc -DGLEW_NO_GLU -DGLEW_MX -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.mx.o -c src/glew.c
gcc -nostdlib -shared -Wl,-soname,libglew32mx.dll -Wl,--out-implib,lib/libglew32mx.dll.a -o lib/glew32mx.dll src/glew.mx.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
ar cr lib/libglew32mx.a src/glew.mx.o
This one worked for me with glew v2.1.0 for mingw32. Made a batch file of it and executed it in a cmd terminal as administrator. Didn't gave me any duplicated declaration error messages.
Upvotes: 0
Reputation: 521
I have performed many searches in order to find an answer to my problems. It took a lot of time so I am posting it here to help others.
To make GLEW work with MinGW you should download the source from GLEW website and put
gcc.exe from MinGW\bin
ar.exe from MinGW32\mingw32\bin
to GLEW's source folder and create and run a .bat in that folder like that:
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c
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
ar cr lib/libglew32.a src/glew.o
gcc -DGLEW_NO_GLU -DGLEW_MX -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.mx.o -c src/glew.c
gcc -shared -Wl,-soname,libglew32mx.dll -Wl,--out-implib,lib/libglew32mx.dll.a -o lib/glew32mx.dll src/glew.mx.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
ar cr lib/libglew32mx.a src/glew.mx.o
you will get your .dll and .a files in lib folder. Put .dll files to system32 folder and put .a files to MinGW lib folder.
Finally, if you are using SFML, link SFML libraries before GLEW and at last link OpenGL. If you change the linking order you will get a linker error.
Don't forget to call glewInit() after creating your window.
Upvotes: 9
Reputation: 51923
If you can't get it work in that way try mine (for Borland compilers):
download GLEW source code (not the binaries)
glew.c
source code mine is ~900KB (I think GLEW 1.6)glew.h
header mine is ~900KB (I think GLEW 1.6)I use local project path to store GLEW
I know it is redundant but I do not need to make changes after system changes like reinstall OS or new compiler version etc... but to get it work you need to do some changes inside glew.c
:
#include <glew.h>
to #include "glew.h"
if you want to use global path then add it to your compiler,copy the files there and leave the <>
as are
copy these 2 files to your project
this is how to correctly include it into project just add this to your main source file (where your winmain or main function is):
#include <windows.h> // optional windows
#include <math.h> // optional
#define GLEW_STATIC // this configure header and source of GLEW to compile correctly
#include "glew.c" // header is included inside so no need to duplicate include
// here are the OpenGL includes like: gl.h,glext.h,....
Now it should work
do not forget to call glewInit();
after OpenGL is initialized and before any extension is used ...
Upvotes: 2
Reputation: 96906
Try these commands:
1: gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c
2: 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
3: ar cr lib/libglew32.a src/glew.o
Upvotes: 2