Linux下使用GCC编译GLFW+GLEW的OpenGL项目出现链接错误如何解决
问题解决步骤
1. 补全依赖安装
首次安装需要安装开发版本的依赖包,不同Linux发行版对应命令如下:
- Debian/Ubuntu 系列:
sudo apt update && sudo apt install libglfw3-dev libglew-dev libgl1-mesa-dev - Fedora/RHEL 系列:
sudo dnf install glfw-devel glew-devel mesa-libGL-devel - Arch 系列:
sudo pacman -S glfw glew mesa
2. 正确使用编译链接命令
你当前使用的gcc main.c缺少必要的链接参数,完整可运行的编译命令如下:
gcc main.c -o opengl_demo -lGLEW -lglfw -lGL -lm
各链接参数的作用:
-lGLEW:链接GLEW库,用于加载OpenGL扩展函数-lglfw:链接GLFW库,用于创建OpenGL窗口、处理系统输入事件-lGL:链接系统原生OpenGL核心库-lm:链接系统数学库,满足OpenGL相关的数值计算依赖
注意:所有链接参数必须放在源码文件路径的后方,顺序不可随意调换,否则仍会触发链接错误。
3. 可选:配置Makefile简化编译
如果后续项目会不断新增文件,可以编写Makefile减少重复输入命令的操作,示例内容如下:
CC = gcc CFLAGS = -Wall -g LIBS = -lGLEW -lglfw -lGL -lm all: opengl_demo opengl_demo: main.c $(CC) $(CFLAGS) main.c -o $@ $(LIBS) clean: rm -f opengl_demo *.o
配置完成后,直接执行make即可完成编译,执行make clean可快速清除所有编译产物。
内容的提问来源于stack exchange,提问作者RadoslavL
相关产品推荐
相关产品推荐

