Open arnaudlecam opened 4 years ago
@arnaudlecam , I'm not linking libdouble-conversion in JamTaba. So I suppose Qt is linking this library. Can you help investigating this issue?
I'm suspecting a relation with glibc release 2.31 (as commented):
The
functions that round their results to a narrower type now have corresponding type-generic macros in , as defined in TS 18661-1:2014 and TS 18661-3:2015 as amended by the resolution of Clarification Request 13 to TS 18661-3.
I'll try to investigate.
Hi @elieserdejesus ,
Much more simple in fact...
I suppose JamTaba's Linux binary version was built with an Ubuntu 18.04 Qt5 (5.9.5). In this case, libdouble-conversion.so.1
is provided by "libdouble-conversion1" package (needed by libqt5core5a).
Lots of Linux distributions are using different Qt5 versions:
/usr/lib64/libdouble-conversion.so.3.1.5
(symlinked as /usr/lib64/libdouble-conversion.so.3
), so it will probably fails at runtime;/usr/lib/x86_64-linux-gnu/libdouble-conversion.so.1.0
file (symlinked as /usr/lib/x86_64-linux-gnu/libdouble-conversion.so.1
), so it should be OK (I will test it soon); /usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3.1
file (symlinked as /usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3
), so it fails at runtime;/usr/lib/libdouble-conversion.so.3.1.5
file (symlinked as /usr/lib/libdouble-conversion.so
and /usr/lib/libdouble-conversion.so.3
), so it fails at runtime;And so on...
Manual symlinking into /usr/lib/
is not a good solution, and shouldn't be a persistent one:
Here are solutions I see:
Static linking;
Static link the lib or entire Qt?
I would say "the lib", because libdouble-conversion is just a Qt depedency on Linux systems. Most of time, Linux packaging systems resolves those issues when installing a package:
Libs are provided as packages on Linux: so they are not statically build, but shared and considered as package depedencies most of time. Doing this, Linux systems are to be "ligth weight" systems. (a package also describes where files have to be copied on "installation", wich one have to be deleted on "uninstall", and wich one have to be deleted on "purge": so it provides coherence and stability to a Linux system).
hi I confirm the issue on Ubuntu 20.04. Is there any ideas to solve the problem? A branch with upgrade on Qt 5.11.x is planned? Thx 4 your job!
I can confirm this issue exists when running Jamtaba2.sh
on Ubuntu 20.04. However, the Jamtaba2
binary runs without any error.
fyi, I'm on Debian 11, and there is only a libdouble-conversion3 package, but not libdouble-conversion1 package. This means that Jamtaba.sh doesn't work on a fresh install:
e@efjz:~/Jamtaba2$ ./Jamtaba2.sh
/home/e/Jamtaba2/./Jamtaba2: error while loading shared libraries: libdouble-conversion.so.1: cannot open shared object file: No such file or directory
e@efjz:~/Jamtaba2$ sudo apt search libdouble-conversion
Sorting... Done
Full Text Search... Done
libdouble-conversion-dev/testing,unstable,now 3.1.5-6.1 amd64 [installed]
routines to convert IEEE floats to and from strings (development files)
libdouble-conversion3/testing,unstable,now 3.1.5-6.1 amd64 [installed]
routines to convert IEEE floats to and from strings
e@efjz:~/Jamtaba2$ ls /usr/lib/
Display all 169 possibilities? (y or n)
e@efjz:~/Jamtaba2$ ls /usr/lib/x86_64-linux-gnu/libdouble-conversion.
libdouble-conversion.a libdouble-conversion.so libdouble-conversion.so.3 libdouble-conversion.so.3.1
e@efjz:~/Jamtaba2$ sudo apt-get install libdouble-conversion1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package libdouble-conversion1
EDIT: Turns out the solution for me was easy enough...simply append deb http://deb.debian.org/debian buster main
to my /etc/apt/sources.list
(since libdouble-conversion1 is available in Debian 10 "buster"), and then do sudo apt update
and sudo apt install libdouble-conversion1
and it works.
Gosh, just found this thread. I got myself to the linking solution before finding this. Thanks you all!!
JamTaba won't run on some Linux distributions (ex.: Arch based distro), because of calls to outdated libdouble-conversion (cannot open shared object file: No such file or directory). It's needs a manual linkage to work:
sudo ln -s libdouble-conversion.so.3.1.5 libdouble-conversion.so.1