【C语言】windows下编译mingw版本的glew库

前言:.lib - Microsoft Visual Studio 的静态库格式 .a - MinGW/GCC 的静态库格式 .dll - 动态链接库(两者通用)

1、glew下载

官方地址: https://glew.sourceforge.net/index.html

windows二进制版下来是MSVC版的库文件,.lib文件。而gcc并不能使用,需要重新进行编译。

下载源码版的glew文件,解压,进入到源码目录,打开cmd

2、编译glew

步骤1:修改 src/glew.c 文件

打开 src/glew.c 文件

找到 DllMainCRTStartup 函数(大约在文件末尾附近)

注释掉整个函数:

复制

c 复制代码
// 注释掉这段代码(大约在 17513 行附近)
/*
int __stdcall DllMainCRTStartup(void* instance, unsigned reason, void* reserved)
{
    // 函数内容...
    return TRUE;
}
*/

步骤2:使用标准链接命令

现在可以使用标准的链接命令,无需 -nostdlib:

步骤3:清理之前的文件

del src\glew.o

del lib\glew32.dll

del lib\libglew32.dll.a

步骤4:重新编译源文件

gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -minline-all-stringops -o src/glew.o -c src/glew.c

步骤5:链接生成 DLL(标准方式,无需 nostdlib)

gcc -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32

将生成的文件放到mingw对应的文件夹下

最后生成的库文件glew32.dll和libglew32.dll.a,位于源码目录下的lib文件夹里面。glew32.dll是程序运行时需要的动态库文件,libglew32.dll.a是gcc进行编译时链接到的静态库文件

include 对应 include

lib 对应 lib

bin 对应bin

相关推荐
BD_Marathon2 分钟前
设计模式——依赖倒转原则
java·开发语言·设计模式
devmoon21 分钟前
在 Polkadot Runtime 中添加多个 Pallet 实例实战指南
java·开发语言·数据库·web3·区块链·波卡
Evand J24 分钟前
TDOA(到达时间差)的GDOP和CRLB计算的MATLAB例程,论文复现,附参考文献。GDOP:几何精度因子&CRLB:克拉美罗下界
开发语言·matlab·tdoa·crlb·gdop
野犬寒鸦25 分钟前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
java·服务器·开发语言·jvm·后端·学习
云姜.28 分钟前
java抽象类和接口
java·开发语言
仙剑魔尊重楼35 分钟前
音乐制作电子软件FL Studio2025.2.4.5242中文版新功能介绍
windows·音频·录屏·音乐·fl studio
xyq202438 分钟前
Pandas 安装指南
开发语言
智者知已应修善业1 小时前
【洛谷P9975奶牛被病毒传染最少数量推导,导出多样例】2025-2-26
c语言·c++·经验分享·笔记·算法·推荐算法
xixixin_1 小时前
【JavaScript 】从 || 到??:JavaScript 空值处理的最佳实践升级
开发语言·javascript·ecmascript
m0_736919101 小时前
C++中的委托构造函数
开发语言·c++·算法