Problem
ich die tiefen Lernbibliothek Caffe in Ubuntu 14.04 (64 Bit) zu kompilieren.Fehler Verknüpfung mit `libopencv_highgui.so` unter Ubuntu 14.04, seltsames Ergebnis mit` libtiff.so.5`
OpenCV (Version: 2.4.8+dfsg1-2ubuntu1
) aus ubuntu Pakete Server installiert:
sudo apt-get install libopencv-dev
Compilieren Caffe
mit CMake 2.8.
Verknüpfung Fehler:
Linking CXX executable caffe-
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.8: undefined reference to `[email protected]_4.0'
Infomation
Es scheint einige Symbole von TIFF-Bibliothek nicht gefunden wurden. Ich habe mich bemüht, den Grund zu finden (ohne Glück). Hier finden Sie einige Informationen über die Bibliotheken.
TIFF-Bibliothek verknüpft durch 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)
Import Symbole von libopencv_highgui.so.2.4.8
$ readelf -s libopencv_highgui.so.2.4.8 |grep TIFFOpen
62: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [email protected]_4.0 (9)
Hinweis: Es gibt einen einzigen @
in den Symbolnamen ist.
$ nm -D libopencv_highgui.so.2.4.8| grep TIFFOpen
U TIFFOpen
Export Symbole von 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 12 [email protected]@LIBTIFF_4.0
Hinweis: Es gibt zwei @
(@@
) in den Symbolnamen.
Meine Verwirrung
- Ist es, weil
libtiff.so.5
@@
in den Symbolnamen hat statt@
, die die Verknüpfung Fehler gemachtlibopencv_highgui.so.2.4.8: undefined reference to '[email protected]_4.0'
- What's the difference between
@
and@@
in symbol names? - What's the meaning of the suffix
LIBTIFF_4.0
of symbols names inlibtiff.so.5
? - Many people said it's because OpenCV need
libtiff4-dev
which is not provided by Ubuntu 14.04. Then why the Ubuntu guys put a broken package on the package server. - How to solve the linking problem?
Ich bin kein Beruf zum Kompilieren und Linken. Entschuldigung für solch einen langen Beitrag. Nur was, um genug Informationen für Sie bereitzustellen, um mir zu helfen. Schätzen Sie für irgendwelche Vorschläge.
P.S. Wenn Sie weitere Informationen zu diesen Bibliotheken benötigen, können Sie dies im Kommentar tun.
Zu lange, können Sie Ihren Beitrag prägnant machen? –
Jetzt ist es prägnanter. @Golazo – nn0p
Haben Sie am Ende dieses Problem gelöst? Wenn ja, könnten Sie bitte die Lösung beschreiben. Vielen Dank! – Josh