Ошибка связывания с `libopencv_highgui.so` под Ubuntu 14.04, странный результат с` libtiff.so.5`
Я собираю библиотеку глубокого обученияCaffe в Ubuntu 14.04 (64 бит).
OpenCV (Version: 2.4.8+dfsg1-2ubuntu1
) устанавливается с сервера пакетов Ubuntu с:
sudo apt-get установить libopencv-dev
компилироватьCaffe
с CMake 2.8.
Ошибка связи:
Связывание исполняемого файла CXX
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.8: неопределенная ссылка на `TIFFOpen@LIBTIFF_4.0 '
деталиКажется, некоторые символы библиотеки TIFF не найдены. Я приложил некоторые усилия, чтобы найти причину (без удачи). Вот некоторая информация о библиотеках.
Библиотека TIFF, связаннаяlibopencv_highgui.so.2.4.8
$ ldd libopencv_highgui.so.2.4.8 | Grep Tiff
libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f978313b000)
Импорт символовlibopencv_highgui.so.2.4.8
$ readelf -s libopencv_highgui.so.2.4.8 | grep TIFFOpen
62: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDTIFFOpen@LIBTIFF_4.0 (9)
Заметка: Есть один@
в именах символов.
$ nm -D libopencv_highgui.so.2.4.8 | grep TIFFOpen
U TIFFOpen
Экспорт символовlibtiff.so.5
:
$ nm -D /usr/lib/x86_64-linux-gnu/libtiff.so.5
0000000000000000 A LIBTIFF_4.0
...
00000000000429f0 T TIFFOpen
...
$ readelf -s /usr/lib/x86_64-linux-gnu/libtiff.so.5|grep TIFFOpen
99: 00000000000429f0 239 FUNC GLOBAL DEFAULT 12TIFFOpen @@ LIBTIFF_4.0
Заметка: Есть два@
(@@
) в именах символов.
libtiff.so.5
имеет@@
в именах символов вместо@
это сделало ошибку связыванияlibopencv_highgui.so.2.4.8: неопределенная ссылка на 'TIFFIsTiled@LIBTIFF_4.0'
В чем разница между@
а также@@
в именах символов?В чем смысл суффиксаLIBTIFF_4.0
имен символов вlibtiff.so.5
?Многие люди говорят, что это потому, что OpenCV нужноlibtiff4-dev
который не предоставляется Ubuntu 14.04. Тогда почему ребята из Ubuntu поместили сломанный пакет на сервер пакетов.Как решить проблему с ссылками?Я не профессия по компиляции и компоновке. Извините за такой длинный пост. Просто, чтобы предоставить достаточно информации для вас, ребята, чтобы помочь мне. Ценю любые предложения.
Постскриптум Если вам нужна дополнительная информация об этих библиотеках, не стесняйтесь говорить в комментарии.