基于GLAD和GLFW3的OpenGL 4.1纯C macOS程序段错误求助
OpenGL重构后段错误与总线错误排查求助
背景
- 正在通过learnopengl.com教程和JDAH的OpenGL C语言系列视频学习OpenGL与C语言,受其「一周实现Minecraft」项目启发
- 重构前:learnopengl.com光照章节之前的代码运行完全正常
- 重构操作:因代码结构杂乱,改用JDAH的Makefile并拆分代码文件,之后程序彻底无法运行
问题详情
- 耗时7小时调试C语言段错误,最终定位到第二次调用
glEnableVertexAttribArray时因解引用空指针触发段错误 - 后续逐行调试时,原本运行正常且已更新文件路径的自定义着色器编译函数,出现
38900 bus error
运行环境
- 操作系统:MacOS 13.2
- OpenGL版本:4.1
- 依赖状态:系统/usr/local/include目录下装有Glew,但当前Makefile未引用该库;JDAH的OpenGL 3.3版本代码在本机可正常运行,仅替换了适配OpenGL 4.1的glad文件夹
已尝试的解决措施
- 将Glew替换为GLAD
- 重装所有相关依赖库
- 修改Makefile配置(调整编译参数、链接选项等)
附相关代码与调试信息
Makefile片段
# 请补充具体Makefile内容
main.c相关代码片段
// 请补充涉及glEnableVertexAttribArray调用的代码部分
LLDB调试信息
// 请补充具体LLDB调试输出内容
内容的提问来源于stack exchange,提问作者Artcann
相关产品推荐
相关产品推荐

