无IDE环境下如何引入MingW、GLFW、GLAD库?
解决MinGW+GLFW+GLAD的库配置问题
一、库文件的合理存放路径
没必要把.h文件和main.cpp放在一起,会导致项目结构混乱。推荐两种存放方式:
- 统一放到MinGW目录下:在MinGW安装根目录(比如
C:\MinGW)新建libs文件夹,把GLFW、GLAD的完整解压包直接放进去。比如GLFW解压后自带include、lib子目录,直接把整个GLFW文件夹丢进C:\MinGW\libs即可,GLAD同理。 - 单独建第三方库目录:在所有项目之外新建
third-party-libs文件夹,专门存放这类库,方便跨项目复用。
二、头文件的正确引入方式
1. 编译时指定搜索路径
用MinGW的g++编译时,必须通过-I参数告诉编译器头文件的位置。比如GLFW头文件在C:\MinGW\libs\glfw\include,GLAD的在C:\MinGW\libs\glad\include,编译命令要加上:
-I C:\MinGW\libs\glfw\include -I C:\MinGW\libs\glad\include
这时代码里就能直接写:
#include <GLFW/glfw3.h> #include <glad/glad.h>
不用写冗长的嵌套路径。
2. 若库放在项目目录(不推荐)
如果坚持把库解压到main.cpp同目录,比如项目里有glfw和glad文件夹,编译时要加-I glfw/include和-I glad/include,代码里依然用上面的直接include写法——你之前写的include<librariename/include/lib.h>会让编译器去系统默认路径找这个嵌套文件,肯定找不到。
三、链接库文件的关键步骤
光引入头文件还不够,必须链接库才能生成可执行文件:
- GLFW:找到其
lib目录(比如C:\MinGW\libs\glfw\lib-mingw-w64),编译时用-L指定库目录,-l指定库名:-L C:\MinGW\libs\glfw\lib-mingw-w64 -lglfw3 - GLAD:不需要链接库,直接把
glad/src/glad.c文件加入编译列表即可。 - 最后必须加上系统OpenGL库的链接参数:
-lopengl32
完整编译命令示例:
g++ main.cpp glad/src/glad.c -IC:\MinGW\libs\glfw\include -IC:\MinGW\libs\glad\include -LC:\MinGW\libs\glfw\lib-mingw-w64 -lglfw3 -lopengl32 -o main.exe
四、Notepad++的编译命令配置
在Notepad的「运行」菜单里添加自定义编译命令,把上面的命令适配成Notepad的变量格式:
cmd /k g++ "$(FULL_CURRENT_PATH)" glad/src/glad.c -IC:\MinGW\libs\glfw\include -IC:\MinGW\libs\glad\include -LC:\MinGW\libs\glfw\lib-mingw-w64 -lglfw3 -lopengl32 -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe" & pause & exit
保存后就能一键编译生成exe文件。
内容的提问来源于stack exchange,提问作者noname
相关产品推荐
相关产品推荐

