На 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.
Как сообщить плагину, где найти соответствующий символ?
Спасибо. Но это не решает проблему. Добавление/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) .... ' –
Хорошо. Вы получаете точно такие же ошибки, как и я. Вы упомянули проблему из-за несоответствия версии 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
Я получил ключ от журнала создания, который неоднократно печатал «предупреждение: игнорирование #pragma omp parallel» и т. Д. Так что OpenMP не получил должным образом связи. Если это решит вашу проблему, я обновлю свой ответ. – Atekihcan