如何将自定义库(例如 glew)添加到 mingw-w64?

How to add a custom library (e.g. glew) to mingw-w64?

我正在使用 windows,我的目标是添加 glew 库 (http://glew.sourceforge.net/index.html) to mingw. I have downloaded mingw-w64 via GitHub (https://github.com/mstorsjo/llvm-mingw/releases/tag/20210423)。它带有一个“bin”、“lib”和“include”文件夹。在“bin”文件夹中,我执行“make”来执行我的项目的 makefile,其中包含行

LDLIBS=-lm -lGL -lGLEW -lglfw

我已将“glew32.lib”复制到“mingw/lib”,“GL/glew.h”和“GL/wglew.h”复制到“mingw/include/GL” ”和“bin/glew32.dll”到“mingw/bin”。

在我的源代码中,我包含了头文件

#include <GL/glew.h>

当我执行“make”时,我在该行收到错误消息:

GL/glew.h: No such file or directory

如何将 glew 等自定义库添加到 mingw?

使用库时,使用 -I 编译器标志告诉编译器在哪里可以找到包含文件(在您的例子中是包含 GL 文件夹的路径)和 -L linker 标志告诉 linker 在哪里可以找到库。

要 link 与库一起使用 -l 标志。库本身是一个 lib*.a 文件(或 lib*.dll.a 用于共享库)。对于 -l 标志,指定的库没有前缀和后缀,因此如果您的库名为 libglew.a,则标志将为 -lglew.

也可以指定 lib*.a 文件的完整路径而不是 -L-l 标志,如果你有 .dll 和 MinGW文件,您甚至可以尝试指定 .dll 文件的路径,link 用户将知道该怎么做。