Pagina 1 di 1

BeagleBoard && Opencv && libtool error

Inviato: mer 15 set 2010, 9:20
da tgmx
Ciao Ragazzi,
sto cercando di compilare le librerie opencv per la BeagleBoard (con OS angstrom).

L'SDK di angstrom l'ho scaricato da:
http://www.angstrom-distribution.org/to ... .2.tar.bz2

Funziona bene e riesco anche a compilare applicazioni QT4 quindi non ho dubbi di installazione errata.

Per compilare le opencv ho seguito questa procedura:

Codice: Seleziona tutto

. /usr/local/angstrom/arm/environment-setup     -> per impostare alcune variabili d'ambiente
export CC=/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc
export CXX=/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++
./configure --host=arm-linux
make
ad un certo punto durante la compilazione ottengo:

Codice: Seleziona tutto

/bin/sh ../libtool  --tag=CC   --mode=compile /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc -DHAVE_CONFIG_H -I. -I..  -I../3rdparty/include -DNDEBUG -I../3rdparty/flann -I../3rdparty/flann/algorithms -I../3rdparty/flann/nn -I../3rdparty/flann/util  -O2 -fomit-frame-pointer    -ffloat-store  -MT lib_clapack_floatstore_la-slamch.lo -MD -MP -MF .deps/lib_clapack_floatstore_la-slamch.Tpo -c -o lib_clapack_floatstore_la-slamch.lo `test -f 'lapack/slamch.c' || echo './'`lapack/slamch.c
libtool: compile:  /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc -DHAVE_CONFIG_H -I. -I.. -I../3rdparty/include -DNDEBUG -I../3rdparty/flann -I../3rdparty/flann/algorithms -I../3rdparty/flann/nn -I../3rdparty/flann/util -O2 -fomit-frame-pointer -ffloat-store -MT lib_clapack_floatstore_la-slamch.lo -MD -MP -MF .deps/lib_clapack_floatstore_la-slamch.Tpo -c lapack/slamch.c  -fPIC -DPIC -o .libs/lib_clapack_floatstore_la-slamch.o
mv -f .deps/lib_clapack_floatstore_la-slamch.Tpo .deps/lib_clapack_floatstore_la-slamch.Plo
/bin/sh ../libtool --tag=CC   --mode=link /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc -O2 -fomit-frame-pointer    -ffloat-store  -no-undefined -Wc,   -o lib_clapack_floatstore.la  lib_clapack_floatstore_la-dlamch.lo lib_clapack_floatstore_la-slamch.lo  -lrt -lz -lpthread -ldl -lm 
libtool: link: cannot find the library `' or unhandled argument `/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi'
make[2]: *** [lib_clapack_floatstore.la] Error 1
make[2]: Leaving directory `/home/luca/tmp/OpenCV-2.0.0/3rdparty'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/luca/tmp/OpenCV-2.0.0'
make: *** [all] Error 2
E' come se libtool non trova /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi ma in realtà la directory esiste.

Avete esperienza con problemi di questo tipo?

Re: BeagleBoard && Opencv && libtool error

Inviato: mer 15 set 2010, 10:49
da 414N
Mi viene in mente un errore subdolo di libtool che mi è spuntato fuori di recente durante una compilazione: per caso hai il path "." nel tuo PATH?
Sembra che libtool si rifiuti di funzionare normalmente se lo rileva.

Re: BeagleBoard && Opencv && libtool error

Inviato: mer 15 set 2010, 11:21
da tgmx
414N ha scritto:Mi viene in mente un errore subdolo di libtool che mi è spuntato fuori di recente durante una compilazione: per caso hai il path "." nel tuo PATH?
Sembra che libtool si rifiuti di funzionare normalmente se lo rileva.
Pare di sì :
echo $PATH
/usr/local/angstrom/arm/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib/java/bin:/usr/lib/kde4/libexec:/usr/kerberos/bin:/usr/lib/qt/bin:/usr/share/texmf/bin:.
Ora provo a toglierlo e vediamo cosa succede.

Intanto grazie della dritta.

Re: BeagleBoard && Opencv && libtool error

Inviato: mer 15 set 2010, 11:39
da tgmx
No, niente da fare.

Ora però ho ripetuto la procedura in un'altra macchina (con slack 13.1) e l'errore se non altro è più significativo:

Codice: Seleziona tutto

/bin/sh ../libtool --tag=CXX   --mode=link /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ -O2 -fomit-frame-pointer   -no-undefined -Wc, -version-info 4:0:0   -o libhighgui.la -rpath /usr/local/lib precomp.lo lib_highgui.la libcxcore.la libcv.la -pthread -lgthread-2.0 -lrt -lglib-2.0   -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgdk_pixbuf-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0    -lpng12  -ljpeg -lz -ltiff -ljasper  -lrt -lz -lpthread -ldl -lm 
../libtool: line 6413: cd: $SDK_PATH/$TARGET_SYS/usr/lib: No such file or directory
libtool: link: warning: cannot determine absolute directory name of `$SDK_PATH/$TARGET_SYS/usr/lib'
/usr/bin/grep: $SDK_PATH/$TARGET_SYS/usr/lib/libgobject-2.0.la: No such file or directory
/usr/bin/sed: can't read $SDK_PATH/$TARGET_SYS/usr/lib/libgobject-2.0.la: No such file or directory
libtool: link: `$SDK_PATH/$TARGET_SYS/usr/lib/libgobject-2.0.la' is not a valid libtool archive
make[2]: *** [libhighgui.la] Error 1
make[2]: Leaving directory `/mnt/temporanea/luca/OpenCV-2.0.0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/temporanea/luca/OpenCV-2.0.0'
make: *** [all] Error 2
A quanto pare l'errore è:

Codice: Seleziona tutto

../libtool: line 6413: cd: $SDK_PATH/$TARGET_SYS/usr/lib: No such file or directory
e la riga di libtool 6413 è:

Codice: Seleziona tutto

absdir=`cd "$dir" && pwd`
ma $SDK_PATH e $TARGET_SYS sono definite e la directory $SDK_PATH/$TARGET_SYS/usr/lib esiste:

Codice: Seleziona tutto

luca@slack131:/mnt/temporanea/luca/OpenCV-2.0.0$ echo $SDK_PATH
/usr/local/angstrom/arm
luca@slack131:/mnt/temporanea/luca/OpenCV-2.0.0$ echo $TARGET_SYS
arm-angstrom-linux-gnueabi
luca@slack131:/mnt/temporanea/luca/OpenCV-2.0.0$ echo $SDK_PATH/$TARGET_SYS/usr/lib
/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib

Re: BeagleBoard && Opencv && libtool error

Inviato: mer 15 set 2010, 11:52
da 414N
Dall'errore sembra che $SDK_PATH e $TARGET_SYS non vengano espanse col loro contenuto prima di essere passate a libtool, risultando nell'errore di "No such file or directory". Se noti, anche grep e sed si lamentano della stessa cosa dopo libtool.
Penso sia un problema di configure e/o Makefile di opencv. Prova a vedere come e se vengono trattate le suddette variabili, magari cercandone le occorrenze con grep nella directory dei sorgenti di opencv.
PS: ma le opencv non sono passate a cmake come build-system con la versione 2? Usi ancora la versione 1.x?

Re: BeagleBoard && Opencv && libtool error

Inviato: mer 15 set 2010, 12:01
da tgmx
In realtà pare che le variabili siano definite bene perchè ho aggiunto a libtool le seguenti righe:

Codice: Seleziona tutto

                  echo $SDK_PATH
                  echo $TARGET_SYS
                  echo $dir
                  absdir=`cd "$dir" && pwd`
e lanciando il make ottengo:

Codice: Seleziona tutto

make[2]: Entering directory `/mnt/temporanea/luca/OpenCV-2.0.0/src'
/bin/sh ../libtool --tag=CXX   --mode=link /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ -O2 -fomit-frame-pointer   -no-undefined -Wc, -version-info 4:0:0   -o libhighgui.la -rpath /usr/local/lib precomp.lo lib_highgui.la libcxcore.la libcv.la -pthread -lgthread-2.0 -lrt -lglib-2.0   -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgdk_pixbuf-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0    -lpng12  -ljpeg -lz -ltiff -ljasper  -lrt -lz -lpthread -ldl -lm 
/usr/local/angstrom/arm
arm-angstrom-linux-gnueabi
$SDK_PATH/$TARGET_SYS/usr/lib
../libtool: line 6416: cd: $SDK_PATH/$TARGET_SYS/usr/lib: No such file or directory
libtool: link: warning: cannot determine absolute directory name of `$SDK_PATH/$TARGET_SYS/usr/lib'
/usr/bin/grep: $SDK_PATH/$TARGET_SYS/usr/lib/libgobject-2.0.la: No such file or directory
/usr/bin/sed: can't read $SDK_PATH/$TARGET_SYS/usr/lib/libgobject-2.0.la: No such file or directory
libtool: link: `$SDK_PATH/$TARGET_SYS/usr/lib/libgobject-2.0.la' is not a valid libtool archive
make[2]: *** [libhighgui.la] Error 1
make[2]: Leaving directory `/mnt/temporanea/luca/OpenCV-2.0.0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/temporanea/luca/OpenCV-2.0.0'
make: *** [all] Error 2
e come si vede subito prima della segnalazione di libtool:

Codice: Seleziona tutto

/usr/local/angstrom/arm
arm-angstrom-linux-gnueabi
$SDK_PATH/$TARGET_SYS/usr/lib
$SDK_PATH è definita
$TARGET_SYS è definita
ma $dir viene vista come $SDK_PATH/$TARGET_SYS/usr/lib e non con il percorso vero ...

Mah...

Re: BeagleBoard && Opencv && libtool error

Inviato: mer 15 set 2010, 12:54
da 414N
tgmx ha scritto: $SDK_PATH è definita
$TARGET_SYS è definita
ma $dir viene vista come $SDK_PATH/$TARGET_SYS/usr/lib e non con il percorso vero ...

Mah...
Cerca le occorrenze di dir e guarda come viene definita. Probabilmente, a causa di una svista di uno sviluppatore, viene definita in modo errato, in modo che non vengano espanse eventuali variabili al suo interno.

Re: BeagleBoard && Opencv && libtool error

Inviato: mer 15 set 2010, 16:56
da tgmx
Grazie mille della collaborazione ma alla fine ho capito come cross-compilare per la Beagleboard con cmake e ho utilizzato l'ultima versione delle OpenCV (2.1 basate su cmake).

In questo modo è filato tutto liscio.

La guida utilizzata è questa:
http://www.paraview.org/Wiki/CMake_Cross_Compiling

Grazie ancora.

Re: BeagleBoard && Opencv && libtool error

Inviato: mer 15 set 2010, 18:17
da 414N
tgmx ha scritto:Grazie mille della collaborazione ma alla fine ho capito come cross-compilare per la Beagleboard con cmake e ho utilizzato l'ultima versione delle OpenCV (2.1 basate su cmake).

In questo modo è filato tutto liscio.

La guida utilizzata è questa:
http://www.paraview.org/Wiki/CMake_Cross_Compiling

Grazie ancora.
Figurati. Metti [RISOLTO] nel titolo del tuo primo post ;)

Re: BeagleBoard && Opencv && libtool error

Inviato: gio 16 set 2010, 8:20
da tgmx
Il problema del titolo in realtà non è proprio risolto... ho solo rinunciato ad installare quella versione di Opencv... :-)

Re: BeagleBoard && Opencv && libtool error

Inviato: sab 11 dic 2010, 23:59
da i-alca
tgmx ha scritto:Grazie mille della collaborazione ma alla fine ho capito come cross-compilare per la Beagleboard con cmake e ho utilizzato l'ultima versione delle OpenCV (2.1 basate su cmake).

In questo modo è filato tutto liscio.

La guida utilizzata è questa:
http://www.paraview.org/Wiki/CMake_Cross_Compiling

Grazie ancora.
Ciao,
la questione mi interessa: che prestazioni ottieni dalle OpenCV sulla Beagle?

Grazie! :D