How to fix the "GLIBCXX_3.4.29 Not Found" error on Linux
If you are using an older Linux distribution, you may get an error similar to the following when trying to start Virola Server or Client:
error: /lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.29' not found (required by /usr/bin/virola-server)This means that the C++ runtime library installed on your system is older than the version used to build the package. Virola requires
GLIBCXX_3.4.29 or newer,
which is typically provided by GCC 11 or later.
To resolve this issue, install a newer version of the C++ runtime library
(libstdc++6) that provides GLIBCXX_3.4.29 or newer.
In this article, you'll find information on how to solve this issue on different Linux distributions.
How to upgrade libstdc++ on Ubuntu
GLIBCXX_3.4.29 is provided by default starting with Ubuntu 22.04 and
is usually missing on Ubuntu 20.x. To install GLIBCXX_3.4.29 on Ubuntu 20.x,
execute the following commands:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update sudo apt install libstdc++6After this, Virola Server and Client should start without issues.
How to upgrade libstdc++ on Debian
Debian 11 ships with GCC 10 and provides GLIBCXX_3.4.28 by default
while Virola requires GLIBCXX_3.4.29 or newer.
The recommended solution is to upgrade to Debian 12 or later. But if you want
to continue using Debian 11, you can install a newer version of the
C++ runtime library (libstdc++6) from the Debian 12 repository:
echo "deb http://deb.debian.org/debian bookworm main" | sudo tee /etc/apt/sources.list.d/bookworm.list sudo apt update sudo apt install -t bookworm libstdc++6Optionally, you can verify that the required symbol is available:
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4.29
The command should output GLIBCXX_3.4.29.
After completing these steps, Virola Server and Client should start without issues.