简体   繁体   中英

Building glew on windows with mingw32

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.

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.

If you can't get it work in that way try mine (for Borland compilers):

  1. 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)
  2. 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 :

    • change #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

  3. 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,....
  4. Now it should work

    do not forget to call glewInit(); after OpenGL is initialized and before any extension is used ...

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM