Qt:找不到-lGL错误

Hof*_*fmn 101 c++ compiler-construction qt qt-creator ubuntu-13.04

我刚刚重新安装了QtCreator,创建了新项目(Qt Application),编译后得到了这个:

/usr/bin/ld: **cannot find -lGL**
collect2: error: ld returned 1 exit status
make: *** [untitled1] Error 1
18:07:41: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 GCC 32bit)
When executing step 'Make'
Run Code Online (Sandbox Code Playgroud)

(项目是空的,我没有做出任何改变)

Qt Creator 2.7.2
基于Qt 5.1.0(32位)
Ubuntu 13.04

我该如何解决这个问题?

小智 144

你应该安装包"libgl1-mesa-dev":

sudo apt install libgl1-mesa-dev
Run Code Online (Sandbox Code Playgroud)

  • @Cuadue:错误中的GL和libgl1 -...中的GL是针对OpenGL的,这是Qt 5.x的基本依赖.在设置Qt开发时,这是开发人员的常见错误 - 但是一旦安装了OpenGL开发库,他们就再也看不到它了. (5认同)
  • 这是正确的答案?为什么要链接到未使用的库?链接器标志不应该只包含`-lGL`吗? (4认同)

des*_*tan 65

你不需要安装任何东西.libGL已经安装了Ubuntu,您只需要软链接即可.(针对ubuntu 14.x和15.x测试,可能适用于更高版本)

  1. 首先找到GL库
  2. 然后在/ usr/lib下链接它
  3. 如果缺少库,可以通过libgl1-mesa-dev软件包安装它

这是你如何做到这一点:

$ locate libGL
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2.0.0
$ sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
Run Code Online (Sandbox Code Playgroud)

  • 主席先生,您应该配上饼干,而不是骗人的骗子 (2认同)
  • 这适用于我的 Ubuntu 18.04 和 Qt 5.12.6。`sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so` (2认同)