Qt 5.5.1:找不到 -lGL

Posted

技术标签:

【中文标题】Qt 5.5.1:找不到 -lGL【英文标题】:Qt 5.5.1: Cannot find -lGL 【发布时间】:2016-01-04 12:02:10 【问题描述】:

我在Qt 5.3.1 上开发了一个GUI 应用程序。我正在使用 Qt Creator 3.1.2 (based on Qt 5.3.1) 构建我的 GUI 应用程序,并且能够成功构建和部署我的应用程序。

我想更新我的 qt 创建器,为此我安装了最新的 Qt Creator 3.5.1 (based on Qt 5.5.1) 并提供了必要的更改以在这个最新的 qt 创建器上构建我现有的 QT GUI 应用程序。一切顺利,即将创建最终的可执行文件,构建被终止并显示以下错误信息:

/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
The process "/usr/bin/make" exited with code 2.
Error while building/deploying project test-app (kit: Desktop Qt 5.5.1 GCC 32bit)

我尝试在线搜索并找到了更新 Mesa 包的建议!。 [如果是这样,为什么同一个应用程序在我的 Qt creator 3.1.2 上构建得很好。在尝试更新 mesa 包之前,我想了解一些详细信息。]

谁能给我一些建议来解决这个问题?提前致谢。

编辑: 当我在 Qt 5.3.1 上构建我的 GUI 应用程序时,以下库链接到我的最终可执行文件:

-lQt5Quick -lQt5Gui -lQt5Qml -lQt5Network -lQt5Sql -lQt5Core -lGLESv2 -lEGL -lGAL

当我在 Qt 5.5.1 版本上构建相同的应用程序时,以下库链接到我的最终可执行文件:

-lQt5Quick -lQt5Gui -lQt5Qml -lQt5Network -lQt5Sql -lQt5Core -lGL

我必须按照@Kyrylo Polezhaiev 的建议更新 mesa 包以解决 -lGL 问题

我在这里遗漏了一块: 是不是旧 qt 版本 (5.3.1) 中的 OpenGL 包 -lGLESv2 -lEGL -lGAL 仅相当于最新 qt creator 5.5.1 版本上的 -lGL

【问题讨论】:

【参考方案1】:

这意味着链接器找不到名为 libGL 的库。 你有 Mesa 的开发文件(头文件和库)吗?在哪里? 您可以使用 -L 选项指定其他库路径。 你能比较一下链接器调用命令吗?

关于第二部分:OpenGL ES 是用于智能手机等嵌入式系统的 OpenGL 子集(OpenGL 的“紧凑”版本)。这意味着您将应用程序切换到“成人”版本的 OpenGL。 Mesa 是 OpenGL 的开源实现。这些库是 Mesa 的一部分。

【讨论】:

我在 Ubuntu 14.04 机器上运行 Qt Creator。我需要安装 mesa 包libgl1-mesa-dev 吗?如何比较链接器调用命令? 是的,sudo apt-get install libgl1-mesa-dev 好的,我调整了答案:-)

以上是关于Qt 5.5.1:找不到 -lGL的主要内容,如果未能解决你的问题,请参考以下文章

在 Ubuntu 14.04 上安装 Qt 5.5.1 - 在终端上抛出 qt.network.ssl 错误

Qt 5.5.1 MSVC 2013,32 位 - LNK1181:无法打开输入文件 'NIDAQmx.lib'

如何使用 Qt 5.5.1 在调试器中查看 QString 值

如何在 静态编译的QT 5.5.1 中 使用数据库插件连接 ODBC(调用静态插件)

QT 5.5.1 删除了 -universal 选项:无法在 MAC 上创建通用二进制文件

如何在VS2015中集成QT5.5