[Solved] GLIBC_2.29 not found on ubuntu 18.04

Admin Edit

We get lots of non-JUCE traffic from Google landing on this thread, so here’s a quick summary.

JUCE is the most widely used, open source C++ framework for developing cross-platform audio applications and plug-ins.

With each release we offer pre-built binaries of some useful parts of the framework. For this particular release we had compiled one of them, the Projucer, on a newer Linux distribution than we had previously used. This in turn caused the binaries to expect the presence of a newer system library that is not present on older Linux systems.

We were unable to find a set of compatibility flags that enabled us to reliably distribute binaries compiled on the newer Linux distribution, so we moved back to compiling on the older system.

If you are running into this error then you likely need to do one of the following:

  • If you have access to the source code then you may be able to either compile the binary on the system that you are trying to execute it on, or on a different system with an older, compatible, version of glibc.
  • If you don’t have access to the source code then you need to ask the provider of the binary to create a version that works with an older version of glibc.

A quick way to find the version of glibc on a system is:

ldd --version

– The JUCE Team

I just downloaded Juce on Ubuntu 18.04,
and when i launch Projucer, it gives the error:
./Projucer: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29’ not found (required by ./Projucer)
I don’t know what to do. Thanks for help,

1 Like

I’ve just run into this exact same issue with a fresh install of Ubuntu 18.04 and download of the Linux .zip from the “Get JUCE” page.

Anyone have a clue where to begin?

I ran

sudo apt-get install -y g++ libgtk-3-dev libfreetype6-dev libx11-dev libxinerama-dev libxrandr-dev libxcursor-dev mesa-common-dev libasound2-dev freeglut3-dev libxcomposite-dev libcurl4-openssl-dev

followed by

sudo add-apt-repository -r ppa:webkit-team/ppa && sudo apt-get install libwebkit2gtk-4.0-37 libwebkit2gtk-4.0-dev

based on the advice here.

Plaze halp!

Usually this is a cross-compiling issue.

Are you by chance accidentally or intentionally building for a 32-bit arch when your system is 64-bit? You can try playing with the Makefile exporter’s architecture flags and see if there are changes in the build results.

This was just using the pre-built Projucer that comes with the zip.

The solution is just to build Projucer from source, simple as:

cd ~/JUCE/extras/Projucer/LinuxMakefile

then run ./Projucer from within the build/ folder :slight_smile:

Just getting started with Linux builds, I’ve seen before some extra flags (such as -j5 iirc) being added to make, are there any resources to explain what/why to add such extra flags?

edit: man make is your friend :joy:

1 Like

Here you go: https://www.gnu.org/software/make/manual/html_node/Parallel.html

1 Like

and thanks very much for your answers.

Indeed, by building Projucer from source it works.
But then i have a new (may be related) problem when i try to compile a simple GUI project:

Compiling MainComponent.cpp
Compiling Main.cpp
Compiling include_juce_audio_basics.cpp
Compiling include_juce_audio_devices.cpp
Compiling include_juce_audio_formats.cpp
Compiling include_juce_audio_processors.cpp
Compiling include_juce_core.cpp
Compiling include_juce_cryptography.cpp
Compiling include_juce_data_structures.cpp
Compiling include_juce_events.cpp
Compiling include_juce_graphics.cpp
Compiling include_juce_gui_basics.cpp
Compiling include_juce_gui_extra.cpp
Compiling include_juce_opengl.cpp
Linking NewProject - App
/usr/bin/ld : ne peut trouver -lGL
collect2: error: ld returned 1 exit status
Makefile:91: recipe for target 'build/NewProject' failed
make: *** [build/NewProject] Error 1

Compilation exited abnormally with code 2 at Wed Aug 28 12:29:11

May be there is a confusion with the libraries?
ldconfig -p | grep libGL.so.1
libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so.1
libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/libGL.so.1

Sure looks like it to me! As I mentioned prior:

It’s hard to suggest a direct fix without more information about your system, but it definitely looks like there’s confusion between 32-bit and 64-bit libraries.

First, I suggest running apt-get install libgl1-mesa-glx and see if that installs the correct OpenGL libs for your system.

Then, blast away the artifact folder for the Projucer (the one with the Projucer binary and object files), and rebuild the Projucer and try running it again.

Yes there is may be an accidental presence of 32-bit arch libraries on my 64 bit system. But i am not able to resolve this. I have still the problem that at compilation -lGL gives “/usr/bin/ld : ne peut trouver -lGL” . May be i will try to re install ubuntu.

This is now fixed in the downloads from the website.


I use Debian Stretch with multiarch enabled, which allows for both 64 and 32 bit software to execute, and had encountered this error when it asked to update a few weeks ago. I hadn’t been able to get it to run until today

I searched out the error message

./Projucer: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./Projucer)

found this thread… read that it was corrected in the latest download… and can confirm that it is and JUCE v5.4.4 now opens


1 Like