Ошибка связывания с `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 поместили сломанный пакет на сервер пакетов.Как решить проблему с ссылками?

Я не профессия по компиляции и компоновке. Извините за такой длинный пост. Просто, чтобы предоставить достаточно информации для вас, ребята, чтобы помочь мне. Ценю любые предложения.

Постскриптум Если вам нужна дополнительная информация об этих библиотеках, не стесняйтесь говорить в комментарии.

Ответы на вопрос(5)

Ваш ответ на вопрос