ChatGPT解决这个技术问题 Extra ChatGPT

Qt: can't find -lGL error

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?


R
Rando Hinn

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

sudo apt install libgl1-mesa-dev

How is this the correct answer? Why should you link against a library not being used? Shouldn't the linker flags simply not include -lGL?
@Cuadue: The GL in the error and in libgl1-... is for OpenGL, a fundamental dependency of Qt 5.x. This is a common error for devs when setting up for Qt development -- but once they install the OpenGL development lib they never see it again.
Ubuntu 20.04 ships with the required OpenGL libraries, it's not necessary to install any packages, you just need to use ln to create a link in /usr/lib, see destan's answer, the 20.04 package doesn't seem to have anything useful in it.
d
destan

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)

First locate the GL library Then link it under /usr/lib 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

Yep, this works. It's usually a good idea to run ldconfig after dealing with shared libraries like in this case.
This worked for me on Ubuntu 16.10, but I'm confused if it is now using the NVidia GPU for OpenGL rendering, or a s/w renderer?
You Sir, deserve the cookie not the con-man who was the big tick
That worked for my on Ubuntu 18.04 and Qt 5.12.6. sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so
I'd like to recommend this solution. It worked with my Ubuntu 16.04 LTS and Qt 5.0.2 (5.15.2 based) sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
s
squeevee

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.


S
Suraj Rao

write:

yum provides */libGL.so 

after providing:

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

S
Sebastian Karlsson

This worked for me:

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

t
truf

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.


n
nobjta_9x_tq

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.


A
Anonymous Suomynona

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


关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now