machine learning - Errores debidos a las dependencias de wabbit de vowpal en la biblioteca de impulso
machine-learning vowpalwabbit (3)
Intento realmente dificil instalar vowpal wobbit y falla cuando ejecuto el archivo make, arrojando:
cd library; make; cd ..
g++ -g -o ezexample temp2.cc -L ../vowpalwabbit -l vw -l allreduce -l boost_program_options -l z -l pthread
ld: library not found for -lboost_program_options collect2: ld returned 1 exit status make[1]: *** [ezexample] Error 1''
Luego agregué los enlaces a la biblioteca de impulso aquí especificando -L / usr / local / lib
Ahora recibo el siguiente error:
g++ -g -o ezexample temp2.cc -L/usr/local/lib ../vowpalwabbit -l vw -l allreduce -l boost_program_options -l z -l pthread
ld: library not found for -lvw
collect2: ld returned 1 exit status
make: *** [ezexample] Error 1
Logré que todo funcionara en OS X 10.7 de la siguiente manera:
Asegúrese de tener una instalación de Boost en funcionamiento. Como se indica en la página de Introducción , generalmente solo necesitamos archivos de cabecera, pero algunas bibliotecas de Boost deben construirse por separado, incluida la biblioteca program_options que se utiliza para procesar las opciones desde la línea de comandos o el archivo de configuración. Vaya a su carpeta de
boost
, y luego en el indicador de su shell:$ ./bootstrap.sh $ ./bjam
Esto compilará y construirá todo. Ahora debería tener un directorio
bin.v2/
en su directorioboost
, con todas las bibliotecas creadas para su sistema (bibliotecas estáticas y con subprocesos).$ ls bin.v2/libs/ date_time iostreams python serialization test filesystem math random signals thread graph program_options regex system wave
Más importante aún, las bibliotecas adicionales de Boost están disponibles en el directorio
stage/lib/
. Para mí, se trata de laMach-O 64-bit dynamically linked shared library x86_64
.La ruta de inclusión debe ser
your_install_dir/boost_x_xx_x
, dondeboost_x_xx_x
es el nombre base de tu Boost en funcionamiento. (Personalmente tengoboost_1_46_1
en/usr/local/share/
y lo vinculé a/usr/local/share/boost
para evitar tener que recordar el número de versión.) La ruta de la biblioteca (para vincular) debería leeryour_install_dir/boost_x_xx_x/stage/lib
. Sin embargo, podría ser mejor enlazar o copiar simbólicamente (que es lo que hice) todo en el lugar habitual, es decir,/usr/local/include/boost
para archivos de encabezado y/usr/local/lib
para las bibliotecas.Edite el
vowpal_wabbit
Makefile
del directoriovowpal_wabbit
y cambie las rutas include / library para que reflejen su instalación actual. ElMakefile
debe verse así (las primeras 12 líneas):COMPILER = g++ UNAME := $(shell uname) ifeq ($(UNAME), FreeBSD) LIBS = -l boost_program_options -l pthread -l z -l compat BOOST_INCLUDE = /usr/local/include BOOST_LIBRARY = /usr/local/lib else LIBS = -l boost_program_options -l pthread -l z BOOST_INCLUDE = /usr/local/share/boost # change path to reflect yours BOOST_LIBRARY = /usr/local/share/boost/stage/lib # idem endif
Entonces, estás listo para compilar
vowpal_wabbit
(make clean
en caso de que ya lo hayas compilado):$ make $ ./vw --version 6.1 $ make test
También puedes instalar el wabbit de vowpal en OS X usando brew :
brew install vowpal-wabbit
O simplemente puede instalar boost, y luego instalar vw
desde el repositorio github.
brew install boost
Para la instalación en CentOS 7 (la versión de 6.5 perl es demasiado antigua para el último código fuente vw), he encontrado las instrucciones en http://wkoplitz.blogspot.be/2012/12/vowpal-wabbit-on-centos.html para trabaja bien:
yum install zlib-devel boost-devel
yum groupinstall "Development Tools"
git clone git://github.com/JohnLangford/vowpal_wabbit.git
cd vowpal_wabbit
./autogen.sh
make
make test