Qt: can't find -lGL error

C++QtCompiler ConstructionQt CreatorUbuntu 13.04

C++ Problem Overview


I just reinstalled QtCreator, created new project (Qt Application) an got this after compilation:

/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'

(Project is empty, I did'n commit any changes)

> Qt Creator 2.7.2
Based on Qt 5.1.0 (32 bit)
Ubuntu 13.04

How do I solve this problem?

C++ Solutions


Solution 1 - C++

You should install package "libgl1-mesa-dev":

sudo apt install libgl1-mesa-dev

Solution 2 - C++

you don't need to install anything. libGL is already installed with Ubuntu, you just need to soft link it. (tested for ubuntu 14.x and 15.x, might work for later versions)

  1. First locate the GL library
  2. Then link it under /usr/lib
  3. If the library is missing, it can be installed via libgl1-mesa-dev package

Here is how you could do this:

$ 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

Solution 3 - C++

The gui Qt module is included by default. If you don't want to use it in a project (e.g., it is a library or only uses stdio), you need to specify that in the .pro file.

QT -= gui

And the linker won't attempt to find lGL regardless of whether it is installed.

My case is admittedly a bit odd, since the main reason to use Qt is to create gui's. Installing the GL library is certainly not difficult, I just wanted to know why my quick and dirty Hello World wanted it.

Solution 4 - C++

write:

yum provides */libGL.so 

after providing:

yum install mesa-libGL-devel mesa-libGLU-devel

Solution 5 - C++

This worked for me:

sudo ln -s /usr/lib/libEGL1.so /usr/lib/libGL.so

Solution 6 - C++

My system is Ubuntu 16.04 on x86 computer(with NVIDIA GeForce GPU).

Check the library files located in /usr/lib/x86_64-linux-gnu

ls -al /usr/lib/x86_64-linux-gnu/libG*

If you see the broken link, reinstall libgl1-mesa-glx

sudo apt install --reinstall libgl1-mesa-glx

And, recheck library.

Solution 7 - C++

In my case: I have installed QT 32 bit lib in Win10 64 bit and it ran into error, I change to all 64 bit and QT creator run smoothly.

Solution 8 - C++

Solved this problem just a minute ago in suse. Just do the following step below and QTCreator should works just fine.

sudo zypper install --type pattern devel_basis

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionHofmnView Question on Stackoverflow
Solution 1 - C++Sayyed Hassan AmiriView Answer on Stackoverflow
Solution 2 - C++destanView Answer on Stackoverflow
Solution 3 - C++squeeveeView Answer on Stackoverflow
Solution 4 - C++user7588367View Answer on Stackoverflow
Solution 5 - C++Sebastian KarlssonView Answer on Stackoverflow
Solution 6 - C++LasteaView Answer on Stackoverflow
Solution 7 - C++nobjta_9x_tqView Answer on Stackoverflow
Solution 8 - C++Anonymous SuomynonaView Answer on Stackoverflow