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
,成功。 程序正常运行...