我在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创建者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创建者5.5.1版本上的-lGL
相当?
答案 0 :(得分:2)
这意味着链接器找不到名为libGL的库。 你有Mesa的开发文件(标题和库)吗?哪里? 您可以使用-L选项指定其他库路径。 你能比较链接器调用命令吗?
关于第二部分:OpenGL ES是用于嵌入式系统(如智能手机)的OpenGL的一个子集(OpenGL的“紧凑”版本)。这意味着您将应用程序切换为OpenGL的“成人”版本。 Mesa是OpenGL的开源实现。这些库是Mesa的一部分。