Qt Linux下调用OpenGL的glu.h报错:error: GL/glu.h: No such file or directory
- 引言
- 一、问题描述
- 二、解决方案
- 三、解决过程记录
- 3.1 定位问题
- 3.2 尝试使用yum命令安装
- 3.3 从网上下载到本地进行安装
 
引言
在Windows上正常运行的OpenGL程序,到Linux下突然报错…找不到glu.h。解决过程略曲折,特此记录问题以及解决方案,顺便留下解决过程方便复盘…
一、问题描述
在Linux下编译OpenGL程序,报错:error: GL/glu.h: No such file or directory
- 在系统中使用find命令查找,确实没有… 很奇怪,标准的库为啥不被这个Linux自带呢。发现 /usr/include/GL下只有下图部分头文件(有gl.h没有glu.h):
  
二、解决方案
确定是缺少glu.h,安装相应的库即可。
 可以在Linux直接运行apt-get install libglu-mesa-dev 或 yum install libglu-mesa-dev
可参考此博客 error: GL/glu.h: 没有那个文件或目录:https://blog.csdn.net/qq_41260086/article/details/117848991
由于我的Linux无法上网,没有使用yum等方便的命令进行安装:
-  - 找提供上述库的网址,比如阿里的开源镜像站:
 
相关网址推荐:
http://rpmfind.net/linux/rpm2html/search.php?query=mesa-libGLU-devel(x86-64)
https://pkgs.org/download/libGLU.so.1()(64bit)
https://developer.aliyun.com/packageSearch 阿里的开源镜像站,和上述网址一样,搜索即可
-  - 使用uname -a确定Linux版本,搜索下载对应的库。我的是el7.x86_64 使用rpm管理包,故下载*.el7.x86_64.rpm的包
  
 
- 使用
-  - 下载了mesa-libGLU-9.0.0-4.el7.x86_64.rpm和mesa-libGLU-devel-9.0.0-4.el7.x86_64.rpm,依次安装即可。如没有权限,在命令前加sudo
 
- 下载了
rpm -Uvh mesa-libGLU-9.0.0-4.el7.x86_64.rpm 
rpm -Uvh mesa-libGLU-devel-9.0.0-4.el7.x86_64.rpm
三、解决过程记录
3.1 定位问题
如上述的问题描述,先确定是缺少glu.h… 查看OpenGL版本:2.1,此版本是存在glu.h的
glxinfo | grep "OpenGL version"

还找到了一个一个20年前到现在还没有解决的帖子:
linux+opengl 下載源碼編譯是提示找不到gl/glu.h 怎麼解決? https://bbs.csdn.net/topics/90046361
3.2 尝试使用yum命令安装
- 注意:要安装dev版本 (包含与库接口相关的头文件),奈何情况特殊,无法联网
sudo yum install libglu-mesa-dev
3.3 从网上下载到本地进行安装
- 搜寻了各大网址,详情看之前的相关网址推荐… 安装以后显示错误依赖
- 故查询自己的Linux版本,下载对应的库文件mesa-libGLU-devel-9.0.0-4.el7.x86_64.rpm
- 执行安装:sudo rpm -Uvh mesa-libGLU-devel-9.0.0-4.el7.x86_64.rpm,还报依赖错误
  
- 提示没有libGLU.so.1,又下载mesa-libGLU-9.0.0-4.el7.x86_64.rpm
- 执行安装:sudo rpm -Uvh mesa-libGLU-9.0.0-4.el7.x86_64.rpm,成功安装
- 继续安装:sudo rpm -Uvh mesa-libGLU-devel-9.0.0-4.el7.x86_64.rpm,成功。
- 程序正常运行...