首页 程序笔记 linux中Qt工程编译报错: error: 找不到 -lGL

linux中Qt工程编译报错: error: 找不到 -lGL

编译一个Qt项目报错:

Qt error: 找不到 -lGL

这是因为 Qt编译器找不到 OpenGL 的动态链接库(libGL.so)。 在大部分 Linux 发行版中都是默认安装OpenGL,包括 Ubuntu、CentOS 等,找不到该链接库一般都是路径不对,如果没有默认安装可以使用如下命令安装:

sudo apt install libopengl-dev -y

如果已有安装可以采取如下解决方法:
1、查找“libGL.so”文件的路径:

find /usr -name libGL*

2、如果能显示如下搜索结果:

/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/mwv206/libGL.so.1
/usr/lib/x86_64-linux-gnu/mwv206/libGL.so
/usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0
/usr/lib/x86_64-linux-gnu/libGLX_indirect.so.0
/usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0
/usr/lib/x86_64-linux-gnu/libGLX.so.0
/usr/lib/x86_64-linux-gnu/libGLdispatch.so.0
/usr/lib/x86_64-linux-gnu/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/libGLdispatch.so.0.0.0
/usr/lib/x86_64-linux-gnu/libGL.so.1.7.0
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/libGLESv2.so.2.1.0
/usr/lib/x86_64-linux-gnu/libGLX.so.0.0.0

说明OpenGL是安装了的,因为 Linux发行版自带的 OpenGL 链接库在后缀中添加了版本号,例如 libGL.so.1、libGL.so.1.2.0、libGL.so.1.3.1 等,但是 Qt 在链接阶段查找的 OpenGL 链接库是不带版本号的。所以我们需要在 /usr/lib/ 目录下创建一个软链接。执行如下命令:

sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so

站心网

编译一个Qt项目报错: Qt error: 找不到 -lGL 这是因为 Qt编译器找不到 OpenGL 的动态链接库(libGL.so)..

为您推荐

如何选择更适合你的 Linux 发行版?

很多人经常会问我这样一个问题:“嘿,你是用Linux的,对吧?我应该使用Linux的哪个版本?我有这个朋友推荐我_____,你觉得怎么样?”我通常会以这样的问题回复:这取决于你想做什么?今天我决定写一篇关于如何选择L..

会不会坚持了,却依然找不到热情?

前段时间,有读者在读完《为什么你一直找不到自己热爱的事情》文章之后,留下了一个问题:“会不会即使坚持了,依然找不到价值感,找不到自己热爱的事情呢?”她的问题让我意识到,我在上一篇文章中关于热爱的解释其..

VS创建.NET Core项目使用Docker方式部署到Linux服务器

在 Visual Studio(VS) 中,使用 Docker 方式部署 .NET Core 项目 到 Linux 服务器,可以简化环境管理并提高部署效率。以下是完整教程:1. 在 VS 创建 .NET Core 项目并启用 Docker新建 ASP.NET Core 项目打开 Visu..

你被入侵了DDOS,吓唬吓唬你

mvc async await异步编程

在mvc中如果要用纯异步请不要使用async和await,可以直接使用Task.Run。在mvc中使用async和await可以让系统开新线程处理Task的代码,同时不必等Task执行结束,就可以同时运行Task之后的代码,加快效率。要注意的是:..

支付宝第三方支付平台对接原理和实现

如果把商户网站使用第三方支付平台(比如支付宝)的原理搞清楚,那编程就变得简单多了。 整个过程大致这样: 1、商户与支付宝签约。 2、在商户网站购买商品,填写数量,确定购买后跳转到结账页面。结账页面可能包括订..

.NET Core 日志配置,NLog配置示例

.NET Core内置的日志组件附带了以堆日志提供程序,输出到控制台,输出,系统事件。在Program.cs组件配置里可以配置,如下。Console和Debug是默认配置。publicstaticIHostBuilderCreateHostBuilder(string[]args)=>Ho..

.Net报错Could not find a part of the path bin\roslyn\csc.exe

维护一个老网站,用vs2022打开后build能成功,但是在IIS里运行的时候会报错:Server Error in '/' Application.Could not find a part of the path '...\bin\roslyn\csc.exe'.Description: An unhan..

IIS中.NET Core报错HTTP Error 500.31 - ANCM Failed to Find Native Dependencies

在IIS部署.NET Core网站报错HTTP Error 500.31 - ANCM Failed to Find Native Dependencies。原因是需要安装.NET Core运行时和ASP.NET Hosting。1 安装.NET Core运行时,目前最新的是ASP.NET Core 运行时 6.0.10(可..

.NET MVC jquery.validate errorPlacement无效

jQuery Validate是一款用于表单验证的插件,可以方便地对表单进行各种验证。而errorPlacement选项则用于定义错误提示信息的显示位置。errorPlacement选项可以传入一个函数,该函数接收两个参数:错误提示信息元素(..

.NET Core不重新编译立即更新页面

在 .NET Core 中,你可以使用一种称为 "Razor Pages" 或 "Razor Views" 的技术来实现页面的热重载,即不需要重新编译应用程序就能立即更新页面。这通常用于开发环境中,以提高开发人员的生产力。以下是一些方法来实..

c#反编译工具有哪些?

C#反编译工具可以将C#程序集反编译为C#代码。这可以用于调试、分析、学习或修改C#程序。C#反编译工具有很多种,包括:ILSpy:ILSpy是一个免费开源的C#反编译工具。它可以生成高质量的C#代码,并支持多种功能,例如代..

必须添加对程序集"netstandard, Version=2.0.0.0"错误解决方法

编译.net core项目出现如下错误:必须添加对程序集"netstandard, Version=2.0.0.0"。解决方法是更新.net core2,升级vs2017到15.4版本,升级framework到4.7版本。..

c#反编译工具推荐

C#反编译工具是用于将C#程序集反编译为中间语言(IL)或C#源代码的工具。反编译工具可以用于各种目的,例如调试、分析、学习和逆向工程。以下是一些常用的C#反编译工具:dnSpy简介:dnSpy是一个开源的.NET程序集反编..

linux shell的几种截取字符串的方法

写shell脚本时,免不了需要截图字符串,这里有几种截取字符串的方法供参考。假设shell中有字符串变量:str=aabbccddeeffaabbccddeeff1. 符号“#“截取,删除指定字符串最左边一次匹配位置左边的字符串,保留右边字符..

linux的Shell脚本中如何判断某个命令是否存在

我们在写shell脚本时,有时候需要根据某个命令是否存在来决定是否执行某些操作,可以有两种方法来判断命令是否存在,参考代码如下:判断linux命令是否存在,方法1:#!/bin/bashif which mycmd /dev/null 21; thenech..

人工智能AI会淘汰哪些职业?程序员会被替代吗?

最近OpenAI的ChatGPT大火,很多人都坦言人工智能太强大,可以完成很多日常工作,甚至比人做得更好。人工智能(AI)已经开始影响很多行业,因为它能够自动化很多重复性工作,提高效率和准确性。所以很多人担忧人工智..

基于浏览器的流程编辑工具:Node-RED简介

Node-RED是一种编程工具,用于以新颖有趣的方式将硬件设备、API和在线服务连接在一起。它提供了一个基于浏览器的流程编辑器,使您可以轻松地使用设计器中的各种节点将流连接在一起,并且可以一键将其部署到其运行,..

网站防止爬虫采集的方法有哪些?

网站防采集是一种常见的保护措施,用于防止恶意程序或自动化工具通过抓取网站上的数据。以下是一些常见的网站防采集方法:Robots.txt文件:通过在网站根目录下放置robots.txt文件,可以告诉搜索引擎爬虫或其他抓取工..

在.NET开发中,你如何处理高并发和大数据量的情况?请谈谈你在这方面的经验和使用的工具

在.NET开发中处理高并发和大数据量的情况是一个关键的挑战。以下是一些我在这方面的经验和使用的工具:异步编程:使用异步编程模型(如async/await关键字)可以提高应用程序的并发性能。通过异步操作,可以释放主线..

发表回复

返回顶部