bartoszek / AUR-meshlab

0 stars 3 forks source link

libIDTF.so not found at start up. #7

Closed capstayn closed 7 months ago

capstayn commented 9 months ago

After fresh install, I get this error on startup:

Unable to load the following plugins:

    libio_u3d.so: libio_u3d.so does not seem to be a Qt Plugin.

Cannot load library /usr/lib/meshlab/plugins/libio_u3d.so: (libIDTF.so: cannot open shared object file: 
No such file or directory)

From what I've read here u3d is difficult to link properly. I installed u3d, which is based on the same upstream as meshlab, and got this error at startup:

Unable to load the following plugins:

    libio_u3d.so: libio_u3d.so does not seem to be a Qt Plugin.

Cannot load library /usr/lib/meshlab/plugins/libio_u3d.so: (/usr/lib/meshlab/plugins/libio_u3d.so: 
undefined symbol: 
 _ZN13IDTFConverter9IDTFToU3dERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_RiS7_i)

I guess this error is because meshlab's version of u3d is not compatible with the original u3d library.

After accepting the error, meshlab loads normally but it's not possible to export a .ply mesh to .u3d (this extension is not in the list of possible exports)

bartoszek commented 9 months ago

Looks like u3d need an update, will check and report back shortly.

bartoszek commented 9 months ago

Can't reproduce; it looks like a build error on your side. Please verify meshlab contains libIDTF.so: pacman -Ql meshlab|grep IDTF

cavestp commented 9 months ago

meshlab does indeed include libIDTF.so:

$pacman -Ql meshlab | grep IDTF
meshlab /usr/lib/meshlab/libIDTF.so

I ran ddl on libio_u3d.so and got this:

# ddl /usr/lib/meshlab/plugins/libio_u3d.so
linux-vdso.so.1 (0x00007ffce4538000)
libmeshlab-common.so => not found
libIDTF.so => not found
libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x00007f43dca00000)
libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007f43dc400000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f43dc000000)
...

Which made me think that libio_u3d doesn't have /usr/lib/meshlab in its library search path. I added /usr/lib/meshlab to /etc/ld.so.conf.d/R.conf and now it works normally, and the u3d export is offered.

I am wondering if the path /usr/lib/meshlab should be added to the RPATH of the compiler for libio_u3d.so. Could this be the issue?

bartoszek commented 9 months ago

Or change lib to static like in meshlab-git 🤔

mansman12 commented 7 months ago

Also having exactly the same issue, have tried adding /usr/lib/meshlab to /etc/ld.so.conf.d/R.conf but doesn't fix it.

Can also verify that libIDTF.so is in Meshlab.

Have had to revert back to a previous build in the meantime.

bartoszek commented 7 months ago

~It should be fixed now, as the latest build defaults to creating static libraries. Let me know: @mansman12 @capstayn @cavestp~ Fixed with patchelf --set-rpath until I push an upstream patch.