1

我在Qt 5.3.1. 我正在使用 Qt Creator3.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 的问题

我在这里遗漏了一块:-lGLESv2 -lEGL -lGAL旧 qt 版本(5.3.1)的 OpenGL 包是否等同-lGL于最新的 qt creator 5.5.1 版本?

4

1 回答 1

2

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

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

于 2016-01-04T12:48:57.023 回答