[英]Building glew on windows with mingw32
這是重復的,我很抱歉,但我沒有任何其他選擇,因為我無法對答案發表評論,而且他們沒有解決我的問題。 以下是原帖:
這是我的問題:
1) 當我嘗試@LightningIsMyName 的回答時,我收到此錯誤:
Makefile:1: *** 缺少分隔符。 停止。
2) 當我嘗試@anon 的回答時,我收到此錯誤:
Makefile:1: Makefile:1: *** 命令在第一個目標之前開始。 停止。
人們說這個答案對他們有幫助,但他們對我不起作用。 我道歉我以某種方式重復了一個問題,但我沒有其他機會發表評論。 希望你有所幫助。 謝謝。
我進行了許多搜索以找到我的問題的答案。 花了很多時間,所以我在這里發布它以幫助其他人。
要使 GLEW 與 MinGW 一起工作,您應該從 GLEW 網站下載源代碼並將
來自 MinGW\\bin 的 gcc.exe
來自 MinGW32\\mingw32\\bin 的 ar.exe
到 GLEW 的源文件夾,然后在該文件夾中創建並運行 .bat 文件,如下所示:
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 lib 文件夾。
最后,如果您使用 SFML,請在 GLEW 之前鏈接 SFML 庫,最后鏈接 OpenGL。 如果您更改鏈接順序,您將收到鏈接器錯誤。
創建窗口后不要忘記調用glewInit()。
如果你不能以這種方式工作,試試我的(對於 Borland 編譯器):
下載GLEW源代碼(不是二進制文件)
glew.c
源代碼是~900KB(我認為GLEW 1.6)glew.h
標頭是 ~900KB(我認為 GLEW 1.6)我使用本地項目路徑來存儲 GLEW
我知道它是多余的,但我不需要在系統更改(例如重新安裝操作系統或新編譯器版本等)后進行更改……但要使其正常工作,您需要在glew.c
進行一些更改:
#include <glew.h>
更改為#include "glew.h"
如果你想使用全局路徑然后將它添加到你的編譯器,復制那里的文件並保持<>
不變
將這 2 個文件復制到您的項目中
這是將它正確包含到項目中的方法,只需將其添加到您的主源文件(您的 winmain 或 main 函數所在的位置):
#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,....
現在它應該工作
不要忘記調用glewInit();
在 OpenGL 初始化之后和使用任何擴展之前......
試試這些命令:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.