Сбой компиляции GNU Octave с libinterp / .libs / liboctinterp.so: undefined ссылка на `Magick :: *

Проверьте свою версию cron .

Похоже, что если вы используете crond Диллона, вам не нужен пользователь в записи /etc/cron.d .

Я понял это после того, как чуть не вырвал оставшиеся волосы.

У меня есть несколько записей, которые были сброшены в /etc/cron.d различными установками. После некоторого расследования я обнаружил, что один из них работает. У него не было пользователя. Итак, я удалил пользователя из других. И они начали работать.

2
04.03.2017, 18:11
2 ответа

El mismo error aquí, pero con una advertencia sobre bibliotecas en conflicto justo arriba, que fue la pista útil.

/usr/local/gcc-6.4.0_binutils-2.28.1_isl/lib64/gcc/x86_64-pc-linux-gnu/6.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: warning: libjpeg.so.8, needed by /usr/lib/../lib64/libtiff.so, may conflict with libjpeg.so.62
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::Image::ping(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::Image::attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::CoderInfo::description[abi:cxx11]() const'
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::Image::comment[abi:cxx11]() const'
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::Image::magick[abi:cxx11]() const'
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::CoderInfo::CoderInfo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
Se espera que

Magick::Image::pingesté en la biblioteca de C++, veamos cuál se ha utilizado:

ldd libinterp/.libs/liboctinterp.so | grep -i magick++
        libGraphicsMagick++.so.12 => /usr/local/gcc-6.4.0_binutils-2.28.1_isl/lib64/libGraphicsMagick++.so.12 (0x00007faa870ab000)

Pero Magick::Image::pingsí que está:

nm -C /usr/local/gcc-6.4.0_binutils-2.28.1_isl/lib64/libGraphicsMagick++.so | grep ping
000000000004c7a0 T Magick::Image::ping(Magick::Blob const&)
000000000004c740 T Magick::Image::ping(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)

Por lo tanto, algo impedía que el enlazador lo usara correctamente.

Otra pista de que libGraphicsMagick++.so está bien :con el mismo procedimiento de construcción , las mismas bibliotecas, la rama estable de octava se construye bien mientras que la rama de desarrollo falla.

Tomemos en serio la advertencia anterior. En realidad, ya se señaló que

Note that with openSUSE 12.04 but also with 13.02, libjpeg-devel package lead to libjpeg62.so installation, that may conflict with libjpeg8.so that is also installed. That's why we recommend to not install libjpeg-devel, but rather install libjpeg8-devel.

libjpeg62-develtiene que ser reemplazado con libjpeg8-devel, porque varios paquetes dependen de una biblioteca jpeg.

Los siguientes comandos se emitieron en openSUSE 42.2.

sudo zypper install libjpeg8-devel

Problem: libjpeg62-devel-62.2.0-35.3.1.x86_64 conflicts with namespace:otherproviders(libjpeg-devel) provided by libjpeg8-devel-8.1.2-119.5.x86_64
Solution 1: deinstallation of libjpeg62-devel-62.2.0-35.3.1.x86_64
Solution 2: do not install libjpeg8-devel-8.1.2-119.5.x86_64

Choose from above solutions by number or cancel [1/2/c] (c): 1

The following NEW package is going to be installed:
libjpeg8-devel

The following package is going to be REMOVED:
libjpeg62-devel

1 new package to install, 1 to remove.
Overall download size: 110.8 KiB. Already cached: 0 B. After the operation, additional 63.6 KiB will be used.
Continue? [y/n/...? shows all options] (y):

pero la biblioteca jpeg todavía está allí. Busquemos el paquete:

zypper se -f /usr/lib64/libjpeg.so.62.2.0
+ | libjpeg62 | The MMX/SSE accelerated JPEG compression/decompression library | package

Eliminar la biblioteca:

sudo zypper rm libjpeg62
The following package is going to be REMOVED:
libjpeg62

Luego reconstruya GraphicsMagick -1.3.28, instale. La construcción de la octava pasa ahora.

0
27.01.2020, 22:41

У меня была такая же проблема (на RHEL7 ), и я наткнулся на нее, поэтому решил поделиться тем, что исправило ее для меня.

Запуск lddна libinterp/.libs/liboctinterp.soне показал зависимости от libGraphicsMagick++.so. Я проверил config.log и заметил, что configure ищет только файлы заголовков, а не библиотеку. После запуска configure --helpя обнаружил, что есть опция --with-magick=LIB. Поэтому я добавил --with-magick=/path/to/libGraphicsMagick++.so, и он построился.

0
26.01.2021, 17:12

Теги

Похожие вопросы