新手:如何学习如何用MinGW构建GLEW?
Novice: How can I learn how to build GLEW with MinGW?
我是一个使用Windows的愚蠢的C/C++新手,通过控制台使用MinGW构建。我一直在寻找如何构建 GLEW 的日子,以便我可以静态地将其与我非常简单的 SDL+OpenGL 程序链接起来。对于静态链接,GLEW 除了 lglew32 之外,应该需要一个特殊的库,称为 lglew32s,这是我无法得到的。
我现在正在尝试学习使用 gcc/g++,并了解选项和整个预处理/编译/链接的事情。我在那里大约 5%。我在网上找到了一些 GLEW 构建批处理文件示例,大多数都很旧,但即使是其中一个新的也没有为我编译 lglew32s,所以我可以动态链接,但我不能静态链接。
因此,因为我在网上找不到 glew32s.lib 之外用 VS 以外的任何东西构建,所以我必须学会理解这意味着什么,并以某种方式弄清楚如何使用我从中学到的东西编译 glew32s:
gcc.exe -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c
gcc.exe -fno-builtin -fno-stack-protector -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 -nostdlib
ar.exe cr lib/libglew32.a src/glew.o
gcc.exe -DGLEW_NO_GLU -DGLEW_MX -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.mx.o -c src/glew.c
gcc.exe -fno-builtin -fno-stack-protector -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 -nostdlib
ar.exe cr lib/libglew32mx.a src/glew.mx.o
我已经学会了使用 gcc/g++ 编译自己的 .cpp 和 .c 项目(就实际代码而言,我几乎没有脱离"hello world"阶段),以及如何将它们动态链接到 SDL 和 GLEW 库。我现在非常明白这一切意味着什么:
g++ sdlglew.cpp -o sdlglew -Wall -lmingw32 -lSDL2main -lSDL2 -lglew32 -lopengl32 -I "C:SDL2-2.0.9i686-w64-mingw32includeSDL2" -L "C:SDL2-2.0.9i686-w64-mingw32lib" -mwindows
(我的 SDL 内容在自己的目录中关闭了。GLEW 的标题和库在 MinGW 的目录中)
我想我需要在我的命令中DGLEW_STATIC或在我的 sdlglew 中 #define GLEW_STATIC.cpp静态编译 GLEW,但是那些带有 lglew32 的选项在编译时没有给我任何错误,并且由于缺少 glew32.dll而无法启动。编译器会使用 -static 吐出错误,因为尚未为其设置 SDL。
基本上,如果您有任何资源来了解上述编译脚本每行到底在做什么以及如何构建 glew32s,我会非常高兴:S 我想理解它,但似乎真的没有关于我们的新手的文档
你不能使用Makefile吗?(我认为它应该包含在MinGW版本中)
在这种情况下,我认为您应该能够执行以下操作:
cd thefolderwithmakefile
make all GLEW_STATIC=1
然后,当您构建项目文件时,还需要定义GLEW_STATIC(如-DGLEW_STATIC
或#define GLEW_STATIC
所述)。
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 如何用数字处理log(0)
- 如何用转义符替换字符串中的所有特殊字符
- 如何用参数值调用函数(仅在运行时已知)
- 如何将C++中的库和头与MinGW一起使用
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 如何用RISC-V GD32VF103CBT6开发板卸载精确的ADC过采样
- 如何用for循环在c++中生成单词三角形
- 无法在windows上使用mingw将sqlite3与c连接
- 如何用C++编写BFS函数
- 当对话框被接受时,如何用参数调用槽
- 我不明白这段代码是如何对这个pythonlist()进行排序的,也不明白如何用C++中的向量来重现它
- MinGw 无法从 cmake 编译测试文件
- MSYS2 MinGW程序包中缺少grpc_cpp_plugin协议
- Mingw-64 在构建和安装后不会编译 openCV 代码
- 安装MinGW后C++编译器不起作用?
- 如何用前导零填充数组?
- 当我尝试通过 mingw 使用 CMake 和 SFML 库编译项目时出错
- 如何用 2 个对象过度引导运算符
- 新手:如何学习如何用MinGW构建GLEW?