On an x86_64 computer running Ubuntu 22.04 (and, I think, earlier releases too) the version of libstdc++.so
in /usr/lib/x86_64-linux-gnu/
is libstdc++.so.6.0.30
. Julia, even when compiled from sources, provides ./usr/lib/libstdc++.so.6.0.29
. The result is that operations like pre-compiling the GLMakie
package fail with obscure error messages. Also certain R or Python packages that incorporate compiled C++ code fail inside of RCall
or PyCall
, again with error messages that may puzzle new users.
I have used two different fixes, both of which seem a bit hackish. One is brute force - changing the symbolic links in the julia sources ./usr/lib
directory for libstdc++.so
and libstdc++.so.6
to point to the system version, libstdc++.so.6.0.30
, instead of the local version, libstdc++.so.6.0.29
. An alternative, which I saw in Miguel Raz Guzmán Macedo’s JuliaCon workshop on the REPL is to call Julia as
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so julia
Is there a recommended way of overriding the version of libstdc++.so
that is shipped with Julia?