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(调用静态插件)