2017-01-12 2 views
1

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é?

Répondre

0

Essayez le réglage chemin du plugin QT comme suit:

export QT_QPA_PLATFORM_PLUGIN_PATH=/home/user/Qt5.7.1/5.7/gcc_64/plugins 
+0

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) .... ' –

+0

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

+0

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