首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用mingw32在windows上构建glew

用mingw32在windows上构建glew
EN

Stack Overflow用户
提问于 2014-07-19 10:03:17
回答 3查看 6.6K关注 0票数 3

这是一个重复,我很抱歉,但我没有任何其他选择,因为我不能评论的答案,他们没有解决我的问题。这是最初的帖子:

在窗户上建起格鲁

我的问题是:

1)当我尝试@LightningIsMyName的答案时,我会得到以下错误:

Makefile:1:*缺少分隔器。停止播放。

2)当我尝试@anon的回答时,我得到了以下错误:

Makefile:1: Makefile:1:*命令在第一个目标之前开始。停止播放。

人们说这帮了他们,但他们没有为我工作。我认为我复制了一个问题,但我没有其他的机会,名誉限制的评论。希望你能帮忙。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-20 13:54:38

为了找到我的问题的答案,我做了很多次搜索。它花了很多时间,所以我在这里张贴它来帮助其他人。

要使GLEW与MinGW一起工作,您应该从GLEW网站下载源代码,并将

来自MinGW\bin的gcc.exe 来自mingw32 32\mingw32 32\bin的ar.exe

到GLEW的源文件夹并在该文件夹中创建并运行一个.bat,如下所示:

代码语言:javascript
复制
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

您将在lib文件夹中获取.dll和.a文件。将.dll文件放入system32文件夹,将.a文件放入MinGW库文件夹。

最后,如果您正在使用SFML,请在GLEW之前链接SFML库,最后链接OpenGL。如果您更改链接顺序,您将得到一个链接器错误。

创建窗口后不要忘记调用glewInit()。

票数 9
EN

Stack Overflow用户

发布于 2014-07-19 10:51:30

如果无法以这种方式工作,请尝试我的(对于Borland编译器):

  1. 下载 格鲁 源代码(不是二进制文件)
代码语言:javascript
复制
- `glew.c` source code mine is ~900KB (I think GLEW 1.6)
- `glew.h` header mine is ~900KB (I think GLEW 1.6)
  1. I使用本地项目路径存储 我知道这是多余的,但我不需要在系统更改后进行更改,如重新安装OS或新的编译器版本等。但是要使它正常工作,您需要在glew.c内部进行一些更改
代码语言:javascript
复制
- change `#include <glew.h>` to `#include "glew.h"`

如果要使用全局路径,则将其添加到编译器中,将文件复制到其中,并保留<>如下

  1. 将这2个文件复制到项目中 这就是如何正确地将其包含到项目中,只需将其添加到主源文件( winmain或main函数位于其中): # //可选窗口#包括 //可选#定义GLEW_STATIC //此配置头和GLEW的源代码以正确编译#include“glw.c”// header,因此不需要重复GLEW_STATIC // OpenGL包含如下: gl.h,glext.h,.
  2. 现在它应该可以工作了 不要忘记在初始化glewInit();之后,在使用任何扩展之前调用OpenGL .
票数 2
EN

Stack Overflow用户

发布于 2014-07-19 13:16:37

尝试以下命令:

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24839120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档