2017-01-12 13 views
1

На Ubuntu 16.04 LTS 64bit, Meshlab рушится, когда я применяю плагин «Screened Poisson Surface Reconstruction». Сообщение об ошибке:Сбой Meshlab из-за неопределенного символа

meshlab: symbol lookup error: /home/eric/dev/3D/meshlab/meshlab/src/distrib/plugins/libfilter_screened_poisson.so: undefined symbol: omp_get_num_procs 

Этот символ доступен в /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 

Я бегу MeshLab из терминала GNOME после его создания. Мой LD_LIBRARY_PATH (и LIBDIR) является:

echo $LD_LIBRARY_PATH 
/usr/local/lib:/usr/lib 

Поэтому я добавил/USR/Lib/x86_64-Linux-гну в LIBDIR

echo $LD_LIBRARY_PATH 
/usr/local/lib:/usr/lib:/usr/lib/x86_64-linux-gnu 

Но теперь у меня есть эта ошибка:

$ ./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. 

Как сообщить плагину, где найти соответствующий символ?

ответ

0

Попробуйте установить QT плагин путь следующим образом:

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

Спасибо. Но это не решает проблему. Добавление/usr/lib/x86_64-linux-gnu в LIBDIR создает проблему зависимости librairies с libqxcb.so. Команда '$ ldd/opt/Qt/5.7/gcc_64/plugins/platform/libqxcb.so' возвращает' /opt/Qt/5.7/gcc_64/plugins/platforms/libqxcb.so:/usr/lib/x86_64-linux-gnu /libQt5XcbQpa.so.5: version 'Qt_5_PRIVATE_API' не найден (требуется /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: версия 'Qt_5.7' не найдена (требуется /opt/Qt/5.7/gcc_64/plugins/platforms/libqxcb.so) .... ' –

+0

Хорошо. Вы получаете точно такие же ошибки, как и я. Вы упомянули проблему из-за несоответствия версии QT. Вы пытаетесь использовать QT из '/ opt/Qt/5.7 /', но gcc-линкер пытается загрузить QT из '/ usr/lib/x86_64-linux-gnu /'. Я решил это, удалив любые другие библиотеки QT, присутствующие в системе, за исключением той, которую я пытаюсь использовать. Во всяком случае, даже после выполнения всех этих действий, я получил неверную ошибку символа «omp_num_procs». Наконец, он разрешается путем добавления 'QMAKE_CXXFLAGS + = -fopenmp -D_USE_OMP' в файл' general.pri'. – Atekihcan

+0

Я получил ключ от журнала создания, который неоднократно печатал «предупреждение: игнорирование #pragma omp parallel» и т. Д. Так что OpenMP не получил должным образом связи. Если это решит вашу проблему, я обновлю свой ответ. – Atekihcan