Qt Linux下调用OpenGL的glu.h报错:error: GL/glu.h: No such file or directory

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-devyum install libglu-mesa-dev

可参考此博客 error: GL/glu.h: 没有那个文件或目录:https://blog.csdn.net/qq_41260086/article/details/117848991

由于我的Linux无法上网,没有使用yum等方便的命令进行安装:

    1. 找提供上述库的网址,比如阿里的开源镜像站:

相关网址推荐:
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 阿里的开源镜像站,和上述网址一样,搜索即可

    1. 使用uname -a确定Linux版本,搜索下载对应的库。我的是el7.x86_64 使用rpm管理包,故下载*.el7.x86_64.rpm的包
      在这里插入图片描述
    1. 下载了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 ,成功。
  • 程序正常运行...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/703919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cuda学习笔记(2)

一 专业名词 1 分支断定 2 一致性和同一性 3 常见名词汇总 4 加速比 二 GPU架构构述 GPU就是将cpu的数据存储单元去掉,也就是保留执行单元,GPU就是多个执行单元 1 GPU设计思路,指令流共享,同时执行,数据切分成小块 …

MySQL的21个SQL经验

1. 写完SQL先explain查看执行计划(SQL性能优化) 日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。 explain select userid,name,age from user where userid =10086 or age =18;2、操作delete或者update语句,加个limit(S…

Android 面试问题 2024 版(其三)

Android 面试问题 2024 版(其三) 十一、版本控制十二、Play 商店和应用程序部署十三、无障碍十四、第三方库和 API十五、解决问题的能力十六、基于 JD 的非常高级别的问题 十一、版本控制 什么是版本控制,为什么它在软件开发中很重要&#x…

爬某网站延禧宫率第一集视频

import requests import re from tqdm import tqdm # 网址链接:https://v.ijujitv.cc/play/24291-1-1.html url https://v6.1080pzy.co/20220801/urxniJCN/hls/index.m3u8 headers {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) Appl…

BUUCTF crypto做题记录(9)新手向

一、rsa2 得到题目代码如下: N 101991809777553253470276751399264740131157682329252673501792154507006158434432009141995367241962525705950046253400188884658262496534706438791515071885860897552736656899566915731297225817250639873643376310103992170…

Linux调用可执行程序:system()函数和execl函数

system()函数: system()函数是一个在C/C编程语言中的库函数,用于在操作系统中执行命令。 函数声明如下: int system(const char *command);该函数接受一个指向以空字符结尾的字符串的指针作为参数,该字符串包含要执行的命令。函…

吴恩达deeplearning.ai:sigmoid函数的替代方案以及激活函数的选择

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 文章目录 引入——改进下需求预测模型ReLU函数(整流线性单元 rectified linear unit)线性激活函数(linear activation function)激活函数的选择实现方式为什么需要激活函数 到现在…

【MATLAB】 LMD信号分解+FFT傅里叶频谱变换组合算法

有意向获取代码,请转文末观看代码获取方式~ 展示出图效果 1 LMD分解算法 LMD (Local Mean Decomposition) 分解算法是一种信号分解算法,它可以将一个信号分解成多个局部平滑的成分,并且可以将高频噪声和低频信号有效地分离出来。LMD 分解算…

【IDEA】java 项目启动偶现Kotlin 版本问题 error:Kotlin:module was

一、问题描述: error:Kotlin:module was compiled with an incompatible version of kotlin the binary version of its metadata is二、问题原因: jar包版本冲突 三、解决方式: 1、Rebuild Project(推荐☆) 重新构…

【Spring Cloud】高并发带来的问题及常见容错方案

文章目录 高并发带来的问题编写代码修改配置压力测试修改配置,并启动软件添加线程组配置线程并发数添加Http取样配置取样,并启动测试访问message方法观察效果 服务雪崩效应常见容错方案常见的容错思路常见的容错组件 总结 欢迎来到阿Q社区 https://bbs.c…

Vue+SpringBoot打造高校实验室管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实验管理模块2.4 实验设备模块2.5 实验订单模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示五、样例代码5.1 查询实验室设备5.2 实验放号5.3 实验预定 六、免责说明 一、摘…

Linux浅学笔记04

目录 Linux实用操作 Linux系统下载软件 yum命令 apt systemctl命令 ln命令 日期和时区 IP地址 主机名 网络传输-下载和网络请求 ping命令 wget命令 curl命令 网络传输-端口 进程 ps 命令 关闭进程命令: 主机状态监控命令 磁盘信息监控&#xff1a…

el-table样式问题:如何修改element-ui表格中按钮悬浮显示但是被el-table溢出隐藏的问题?

最近在写elment-ui样式表格中遇到了溢出隐藏的问题 修改前 修改后 是由于el-table__body-wrapper为 overflow:hidden导致的 解决方式: .el-table__body-wrapper {overflow: visible !important; } //或者 /deep/.el-table__body-wrapper {overflow: v…

服务器防漏扫

什么是漏扫? 漏扫是漏洞扫描的简称。漏洞扫描是一种安全测试方法,用于发现计算机系统、网络或应用程序中的潜在漏洞和安全弱点。通过使用自动化工具或软件,漏洞扫描可以检测系统中存在的已知漏洞,并提供相关的报告和建议&#xf…

超详细的Python中与迭代相关的函数

下面要介绍的enumerate、range、zip、reversed、sorted属于Python内置的函数或者类别,返回的对象都可通过迭代方法访问。 一、enumerate函数 1.语法:enumerate(iterable, start0) 1)该函数Python 2.3. 以上版本可用,2.6 添加 start 参数&a…

基于Springboot + Vue 母婴商城系统

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 二、开发技术与环…

基于Java SSM框架实现家庭食谱管理系统项目【项目源码+论文说明】

基于java的SSM框架实现家庭食谱管理系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个家庭食谱管理系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论…

自定义神经网络一之Tensor和神经网络

文章目录 前言Tensor神经网络深度神经网络DNN卷积神经网络CNN卷积神经网络有2大特点 循环神经网络RNN残差网络ResNetTransformer自我注意力机制并行效率 总结 前言 神经网络是AI界的一个基础概念,当下火热的神经网络例如RNN循环神经网络或者CNN卷积神经网络&#x…

WLAN 无线局域网、802.11

目录 1 无线局域网的组成 1.1 IEEE 802.11 关联 (association) 建立关联的两种方法 1.2 移动自组网络 无线传感器网络 WSN 无线传感器网络主要的应用领域 2 802.11 局域网的物理层 802.11 的物理层的几种实现方法 1 无线局域网的组成 无线局域网 WLAN (Wireless Lo…

Java+SpringBoot+Vue+MySQL:疫情隔离酒店管理的全面技术解决方案

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…