pekingduck/metadsf

symbol lookup error

Opened this issue · 4 comments

Hello
The precompiled binary does not work in Debian 64bit (9 and 10)
Apparently all the dependencies are installed. Shows information of the dsf files but can not create the tags.

metadsf: symbol lookup error: metadsf: undefined symbol: _ZN6TagLib6StringC1ERKSsNS0_4TypeE

ldd -r says

ldd -r metadsf linux-vdso.so.1 (0x00007ffdf87e7000) libtag.so.1 => /usr/lib/x86_64-linux-gnu/libtag.so.1 (0x00007f7d10b69000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7d109e5000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7d109cb000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7d1080a000) libicuuc.so.63 => /usr/lib/x86_64-linux-gnu/libicuuc.so.63 (0x00007f7d1063b000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7d1041d000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7d10298000) /lib64/ld-linux-x86-64.so.2 (0x00007f7d10c76000) libicudata.so.63 => /usr/lib/x86_64-linux-gnu/libicudata.so.63 (0x00007f7d0e8a8000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7d0e887000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7d0e882000) undefined symbol: _ZN6TagLib6String3endEv (./metadsf) undefined symbol: _ZN6TagLib6StringC1ERKSsNS0_4TypeE (./metadsf) undefined symbol: _ZN6TagLib6String5beginEv (./metadsf)

I tried to compile it with all the libtag of the repositories and it produces a complaint

TagLib is not installed

If this helps
Thanks.

The binary was compiled against an old version of taglib undef Ubuntu 14 so it may not work on Debian 9. But I did successfully compile the code under a fresh installation of Debian 9.8 (64 bit). Here's exactly what I did:

apt install gcc
apt install g++
apt install git
apt install make
apt install libtag1-dev
apt install zlib1g-dev
git clone https://github.com/pekingduck/metadsf
cd metadsf; ./configure; make

I needed zlib1g-dev (to compile)
But still, I try to compile and

[...]utils.cpp: In function ‘bool stringToLong(const string&, long int&)’: utils.cpp:131:17: warning: catching polymorphic type ‘class std::invalid_argument’ by value [-Wcatch-value=] } catch (std::invalid_argument) { ^~~~~~~~~~~~~~~~ mv -f .deps/utils.Tpo .deps/utils.Po g++ -Wall -I/usr/local/include -DVERSION=\"0.1\" -DPROG="\"metadsf\"" -g -O2 -L/usr/local/lib -ltag -lz -o metadsf dsffile.o dsfheader.o dsfproperties.o main.o metadsf.o options.o utils.o -lz [...]

The precompiled binary obviously keeps failing.
Thanks for your help

I pushed out a fix that should suppress the warning with gcc 8.x (which I believe it's what you are having on your machine). Thanks for reporting.

Perfect!
The only drawback now is that it does not allow me to remove the tags.

segment violation

That would be another issue.
You can mark this topic as closed