如何向mingw-w64添加glew这类自定义第三方库?
Mingw添加GLEW库找不到头文件的解决方法
1 确认头文件存放路径正确
你需要保证glew的头文件放在mingw根目录的include/GL路径下,示例路径:如果你的llvm-mingw解压在C:\llvm-mingw,则完整路径应为C:\llvm-mingw\include\GL\glew.h,不要误放到mingw的bin子目录下的include文件夹中。
2 修正Makefile配置
你当前的Makefile只配置了链接库名称,缺少头文件和库文件的搜索路径声明,需要补充CFLAGS和LDFLAGS配置:
# 替换为你本地llvm-mingw的实际根目录路径 CFLAGS += -IC:/llvm-mingw/include LDFLAGS += -LC:/llvm-mingw/lib # 注意如果你的库文件名为glew32.lib,要把-lGLEW改为-lglew32,或者将glew32.lib重命名为libglew32.a LDLIBS=-lm -lGL -lglew32 -lglfw
3 验证工具链匹配
- 在执行make的目录下打开终端,执行
gcc -v,确认输出的工具链路径为你下载的llvm-mingw的路径,避免系统中其他版本的mingw被优先调用,导致路径不匹配。 - 执行
gcc -print-search-dirs可以查看gcc默认的头文件、库文件搜索路径,如果你存放glew的路径不在默认搜索列表中,必须按第二步的方式手动在Makefile中指定路径。
补充注意事项
- 不要在mingw的bin目录下编译你的项目,建议将mingw的bin目录添加到系统PATH环境变量,在你自己的项目目录中执行make,避免路径混淆。
- 优先使用mingw版本的GLEW预编译包,不要使用MSVC版本的GLEW库,MSVC的
.lib文件和mingw链接器可能存在兼容性问题,会导致后续链接阶段报错找不到函数符号。 - 编译完成后运行exe时,需要保证glew32.dll和exe在同一目录,或者放在系统PATH路径中,否则会报dll缺失错误。
内容的提问来源于stack exchange,提问作者AliceTheCat
相关产品推荐
相关产品推荐

