|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2009
Messaggi: 83
|
link a librerie [cmake]
Salve a tutti,
non sono nuovissimo del forum ma di questa sezione, e soprattutto di linux, si.. Dovrei utilizzare una libreria opensource (robotvision), messa a disposizione dall'Imperial College di Londra. Ci sto sbattendo da un po' ed ho dovuto anche cambiare versione di linux (ora uso UBUNTU 10.04) solo per preparare l'nstallazione che, ovviamente, adesso non va. Il problema sono delle librerie e credo sia legato a questa parte di codice del file CMakeLists: Codice:
SET (LIB_NAMES GL cblas atlas cvd lapack f77blas ) #jpeg png tiff ..... SET (LIBS "") FOREACH(lib ${LIB_NAMES}) FIND_LIBRARY(LIB_${lib} ${lib}) IF (LIB_${lib}) MESSAGE(STATUS "found library '${lib}': ${LIB_${lib}}") ELSE (LIB_${lib}) MESSAGE(FATAL_ERROR "cannot find library '${lib}' - this will not work ...") ENDIF (LIB_${lib}) liblapack, libcvd sono di sicuro installate ma non sono in quel percorso. Volevo sapere come opera il FIND_LIBRARY e dove effettua la ricerca; inoltre è possibile specificare nel cmakelist dove cercare oppure c'è un modo per copiare la libreria o un collegamneto ad essa nella cartella dove viene effettuata la ricerca? Grazie in anticipo P.S.: non so se sia la sezione giusta ma in caso contrario mi scuso e vi prego di spostarmi o indicarmi dove postare Ultima modifica di fdf86 : 05-06-2012 alle 17:24. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Tutte le librerie installate tramite pacchetto devono finire in path canonici raggiungibili, salvo errori di pacchettizzazione (rari perché una cosa del genere è piuttosto eclatante) oppure pasticci come librerie embedded duplicate (solitamente in pacchetti non free).
Codice:
gimli@kwankey:~$ cat /etc/ld.so.conf include /etc/ld.so.conf.d/*.conf gimli@kwankey:~$ cat /etc/ld.so.conf.d/*.conf # Multiarch support /lib/i386-linux-gnu /usr/lib/i386-linux-gnu /lib/i486-linux-gnu /usr/lib/i486-linux-gnu # libc default configuration /usr/local/lib gimli@kwankey:~$ echo $LD_LIBRARY_PATH Si dovrebbe evitare di usarla, se non in casi disperati o durante fasi di sviluppo. Se le librarie non sono installate e non si sa in che pacchetto siano lo strumento principe in distribuzioni della famiglia Debian è apt-file: Codice:
gimli@kwankey:~$ apt-file search libGL.so libgl1-fglrx-glx: /usr/lib/i386-linux-gnu/fglrx/fglrx-libGL.so.1.2 libgl1-fglrx-glx: /usr/lib/i386-linux-gnu/fglrx/libGL.so.1 libgl1-mesa-dev: /usr/lib/i386-linux-gnu/libGL.so [...] gimli@kwankey:~$ apt-file search liblapack.so libatlas-base-dev: /usr/lib/atlas-base/atlas/liblapack.so libatlas3-base: /usr/lib/atlas-base/atlas/liblapack.so.3 libatlas3-base: /usr/lib/atlas-base/atlas/liblapack.so.3.0 libatlas3gf-base: /usr/lib/atlas-base/atlas/liblapack.so.3gf libatlas3gf-base: /usr/lib/atlas-base/atlas/liblapack.so.3gf.0 liblapack-dev: /usr/lib/lapack/liblapack.so [...] gimli@kwankey:~$ apt-file search libcvd.so Se le hai installate manualmente da qualche parte dovresti poterle utilizzare esportando la variabile nella shell in cui poi lancerai il make o integrandola nel makefile stesso.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Apr 2009
Messaggi: 83
|
Grazie mille!!
Con questo comando mi trova tutte le librerie eccetto libcvd che ho installato io in effetti :/ ma allora come mai quando provo ad installare la libreria con il comando "cmake .." non me le trova? dove potrei metter mano secondo te? Mi rendo conto che detto così è forse un po' astratto ma davvero non so che fare ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
CMake è una bestia diversa, ho trascurato questo dettaglio.
Nelle prove ho utilizzato i sorgenti prelevati dall'svn: Codice:
svn co https://svn.openslam.org/data/svn/robotvision Codice:
-- LIB PATH: -- found library 'lapack': /usr/lib/liblapack.so -- found library 'f77blas': /usr/lib/libf77blas.so -- found library 'cblas': /usr/lib/libcblas.so -- found library 'atlas': /usr/lib/libatlas.so -- found library 'GL': /usr/lib/i386-linux-gnu/libGL.so CMake Error at CMakeLists.txt:37 (MESSAGE): cannot find library 'cvd' - this will not work ... Codice:
SET (PROJECT_NAME robotvision) PROJECT(${PROJECT_NAME}) CMAKE_MINIMUM_REQUIRED(VERSION 2.6) OPTION (OPENCV_SUPPORT "opencv support" ON) IF (OPENCV_SUPPORT) add_definitions(-DRV_OPENCV_SUPPORT) ENDIF() # override by appending -DCMAKE_BUILD_TYPE=Debug to cmake argument list IF( NOT CMAKE_BUILD_TYPE ) SET( CMAKE_BUILD_TYPE Release ) add_definitions(-DRV_BUILD_RELEASE) ENDIF() SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wall ") SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall ") MESSAGE(STATUS "LIB PATH: ${CMAKE_LIBRARY_PATH}") [...] Proviamo. Codice:
gimli@kwankey:~/Scrivania/robotvision/robotvision/build$ cmake -DCMAKE_LIBRARY_PATH:PATH=/home/gimli/Scrivania/robotvision/libcvd ../trunk -- LIB PATH: /home/gimli/Scrivania/robotvision/libcvd -- found library 'lapack': /usr/lib/liblapack.so -- found library 'f77blas': /usr/lib/libf77blas.so -- found library 'cblas': /usr/lib/libcblas.so -- found library 'atlas': /usr/lib/libatlas.so -- found library 'GL': /usr/lib/i386-linux-gnu/libGL.so -- found library 'cvd': /home/gimli/Scrivania/robotvision/libcvd/libcvd.so [...]
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Apr 2009
Messaggi: 83
|
il problema è che nonostante apt-file search trovi le varie librerie
Codice:
fdf@fdf-pc:~$ apt-file search liblapack.so libatlas-base-dev: /usr/lib/atlas/liblapack.so libatlas3gf-base: /usr/lib/atlas/liblapack.so.3gf libatlas3gf-base: /usr/lib/atlas/liblapack.so.3gf.0 liblapack-dev: /usr/lib/liblapack.so liblapack3gf: /usr/lib/liblapack.so.3gf liblapack3gf: /usr/lib/liblapack.so.3gf.0 revolution-mkl: /usr/lib/R/lib/liblapack.so revolution-mkl: /usr/lib/R/lib/liblapack.so.3gf fdf@fdf-pc:~$ apt-file search libcv.so libcv-dev: /usr/lib/libcv.so libcv4: /usr/lib/libcv.so.4 libcv4: /usr/lib/libcv.so.4.0.0 fdf@fdf-pc:~$ apt-file search libf77blas.so libatlas-base-dev: /usr/lib/libf77blas.so libatlas3gf-base: /usr/lib/libf77blas.so.3gf libatlas3gf-base: /usr/lib/libf77blas.so.3gf.0 [...] Codice:
fdf@fdf-pc:~/robotvision/trunk/build$ sudo cmake .. -- LIB PATH: CMake Error at CMakeLists.txt:37 (MESSAGE): cannot find library 'lapack' - this will not work ... -- Configuring incomplete, errors occurred! |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Aspetta, apt-file non trova le librerie che hai nel tuo sistema, ma ti dice in quale pacchetto si trovano.
Hai effettivamente installato il pacchetto liblapack-dev, per esempio? Codice:
apt-get install liblapack-dev Codice:
ls -la /usr/lib/liblapack.so
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Apr 2009
Messaggi: 83
|
Aaaahh!! OK! Grazie mille!
perdona l'ignoranza... ora quel passo è andato ma il successivo "make" da problemi proprio con alcuni file della libreria cvd .. Non li trova perchè li cerca in cvd/!! Codice:
fdf@fdf-pc:~/robotvision/trunk/build$ sudo make [ 10%] Building CXX object CMakeFiles/robotvision.dir/gui_view.cpp.o In file included from /home/fdf/robotvision/trunk/gui_view.cpp:27: /home/fdf/robotvision/trunk/gui_view.h:32:33: error: libcvd/cvd/image_io.h: No such file or directory In file included from /home/fdf/robotvision/trunk/gui_view.h:34, from /home/fdf/robotvision/trunk/gui_view.cpp:27: /home/fdf/robotvision/trunk/gui_window.h:31:26: error: cvd/glwindow.h: No such file or directory In file included from /home/fdf/robotvision/trunk/gui_window.h:33, from /home/fdf/robotvision/trunk/gui_view.h:34, from /home/fdf/robotvision/trunk/gui_view.cpp:27: /home/fdf/robotvision/trunk/rectangle.h:28:26: error: cvd/image_io.h: No such file or directory ci litigo un pochino e magari ti chiamo in aiuto |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Apr 2009
Messaggi: 83
|
ho reinstallato libcvd ed ora è andata..altri problemi ma cerco di risolvere da solo
Ancora grazie infinite!! ps: ho un problema col microfono non riesco a farlo funzionare..tutte le guide che pure ci sono per sony vaio non mi aiutano..dove posso postare? |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:06.