Those errors mean that the required libraries are not
available on your system – as "static" libraries.
The "problem" with Linux is that every Linux distribution (and every version
of a distribution) is pretty much a distinct
operating system. They are all based on the Linux kernel, but they use different versions
of the Linux kernel and – even more important – they ship with different libraries (and different library versions
), they use different configurations, and they use different packing systems. This makes creating "binary" files that will run on every Linux-based system very hard, if not impossible. You probably will have to discard that idea.
For this reasons, Linux software is almost always distributed either as source code
(often together with a
script), so that everybody can build the software from sources on (and for) their own specific system; or as distribution-specific
"binary" packages that run on the specific distribution (and specific version
of the distribution) that they were made for, but not
For example, if you decide that you want to support Debian (and derivatives) only
, you could distribute your software as deb
Static linking may
be a solution for very simple programs, but as soon as you have a more complex program with a lot of library dependencies, this usually will lead to a dead end, because a lot of libraries simply are not
available (or not
supposed to be used) as "static" libraries. For example, the GNU C Library (glibc), which is the "standard" C library on most Linux distributions, does not
properly support static linking! You may be able to switch to a different C library, such as musl libc
, but that adds even more hassle to the build process.
One possible way to distribute your software as packages that work "out-of-the-box" on pretty much all Linux-based systems is Flatpak
…but, of course, the Flatpak runtime must still be installed. Usually via the distribution-specific package manager.
has a similar concept to Flatpak, but it is mostly popular on Ubuntu: