Sur Ubuntu 16.04 LTS 64bit, Meshlab plante quand j'applique le plugin "Screened Poisson Surface Reconstruction". Message d'erreur est:Meshlab se bloque à cause d'un symbole non défini
meshlab: symbol lookup error: /home/eric/dev/3D/meshlab/meshlab/src/distrib/plugins/libfilter_screened_poisson.so: undefined symbol: omp_get_num_procs
Ce symbole est disponible en /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0:
$ objdump -T /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0|grep omp_get_num_procs
00000000000125c0 g DF .text 0000000000000005 OMP_1.0 omp_get_num_procs_
0000000000011870 g DF .text 0000000000000005 OMP_1.0 omp_get_num_procs
Je courais MeshLab d'un terminal GNOME après l'avoir généré. Mon LD_LIBRARY_PATH (et LIBDIR) est:
echo $LD_LIBRARY_PATH
/usr/local/lib:/usr/lib
J'ajouté/usr/lib/x86_64-linux-gnu dans LIBDIR
echo $LD_LIBRARY_PATH
/usr/local/lib:/usr/lib:/usr/lib/x86_64-linux-gnu
Mais maintenant, j'ai cette erreur:
$ ./meshlab
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb.
Reinstalling the application may fix this problem.
Comment indiquer au module externe où trouver le symbole approprié?
Merci. Mais cela ne résout pas le problème. L'ajout de/usr/lib/x86_64-linux-gnu dans LIBDIR crée un problème de dépendance de librairies avec libqxcb.so. La commande '$ ldd/opt/Qt/5.7/gcc_64/plugins/plates-formes/libqxcb.so' renvoie' /opt/Qt/5.7/gcc_64/plugins/platforms/libqxcb.so:/usr/lib/x86_64-linux-gnu /libQt5XcbQpa.so.5: la version 'Qt_5_PRIVATE_API' est introuvable (requise par /opt/Qt/5.7/gcc_64/plugins/platforms/libqxcb.so) /opt/Qt/5.7/gcc_64/plugins/platforms/libqxcb.so: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: la version 'Qt_5.7' est introuvable (requise par /opt/Qt/5.7/gcc_64/plugins/platforms/libqxcb.so) .... ' –
D'accord. Vous obtenez exactement les mêmes erreurs que je recevais. Le problème que vous avez mentionné est dû à la non-concordance des versions QT. Vous essayez d'utiliser QT à partir de '/ opt/Qt/5.7 /', mais gcc linker essaie de charger QT à partir de '/ usr/lib/x86_64-linux-gnu /'. J'ai résolu cela en supprimant toutes les autres bibliothèques QT présentes dans le système à l'exception de celle que j'essaie d'utiliser. Quoi qu'il en soit, même après avoir fait tout cela, j'ai récupéré l'erreur de symbole indéfinie 'omp_num_procs'. Enfin, il est résolu en ajoutant 'QMAKE_CXXFLAGS + = -fopenmp -D_USE_OMP' dans le fichier' general.pri'. – Atekihcan
J'ai reçu l'indice de make log, qui affichait à plusieurs reprises 'warning: ignorer #pragma omp parallel' etc. Donc, d'une manière ou d'une autre, OpenMP n'était pas correctement lié. Si cela résout votre problème, je mettrai à jour ma réponse. – Atekihcan