Problema
Sto compilando la biblioteca apprendimento profondo Caffe in Ubuntu 14.04 (64 bit).errore `libopencv_highgui.so` Linking sotto Ubuntu 14.04, strano risultato con` libtiff.so.5`
OpenCV (Version: 2.4.8+dfsg1-2ubuntu1
) viene installato dal server di pacchetti di Ubuntu con:
sudo apt-get install libopencv-dev
Compile Caffe
con CMake 2.8.
errore durante il collegamento:
Linking CXX executable caffe-
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.8: undefined reference to `[email protected]_4.0'
Infomation
Sembra che alcuni simboli della libreria TIFF non sono state trovate. Ho fatto qualche sforzo per trovare il motivo (senza fortuna). Ecco alcune informazioni sulle librerie.
libreria TIFF collegato da 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)
simboli importazione di 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)
Nota: C'è una sola @
nei nomi dei simboli.
$ nm -D libopencv_highgui.so.2.4.8| grep TIFFOpen
U TIFFOpen
simboli esportazione di 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
Nota: Ci sono due @
(@@
) nei nomi dei simboli.
La mia confusione
- È perché
libtiff.so.5
ha@@
nei nomi dei simboli invece di@
che hanno fatto l'errore di collegamentolibopencv_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?
Io non sono una professione sulla compilazione e linking. Ci scusiamo per un post così lungo. Che cosa fornire abbastanza informazioni per voi ragazzi per aiutarmi. Apprezzo per qualsiasi suggerimento.
P.S. Se hai bisogno di maggiori informazioni su queste librerie, sentiti libero di dire nel commento.
Troppo lungo, puoi rendere il tuo post conciso? –
Ora è più conciso. @Golazo – nn0p
Hai finito per risolvere questo problema? In tal caso, potresti descrivere la soluzione. Grazie! – Josh