Jun 082012
 

Hoy nos pusimos a instalar Player & Stage en máquinas con Ubuntu 11.10, los paquetes requeridos para instalar y compilar tanto el Player como el Stage son:

#Antes de bajar los paquetes es recomendable actualizar los páquetes ya instalados:

sudo apt-get update
sudo apt-get upgrade

#Básicos

sudo apt-get install autotools-dev build-essential cmake cpp libboost-signals1.42.0 libboost-signals1.42-dev libboost-thread1.42.0 libboost-thread1.42-dev libcv2.1 libcv-dev libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-dev libgnomecanvas2-0 libgnomecanvas2-dev libgsl0-dev libgtk2.0-dev libjpeg62-dev libtool libxmu-dev swig python-dev libhighgui-dev libcvaux-dev

# Para Stage

sudo apt-get install freeglut3 freeglut3-dev libfltk1.1 libfltk1.1-dev libltdl7 libltdl7-dev libpng12-0-dev libpng12-0

# Fuentes de player y stage usados:  player-3.0.2.tar.gz Stage-3.2.2-Source.tar.gz

Observaciónes:

Si al compilar Stage aparece el siguiente error y similares:

main.cc:(.text.startup+0x34b): undefined reference to `Fl::run()'
libstage.so.3.2.2: undefined reference to `Fl_File_Chooser::value(int)'
libstage.so.3.2.2: undefined reference to `fl_alert(char const*, ...)'
libstage.so.3.2.2: undefined reference to `Fl_Shared_Image::get(char const*, int, int)'
...

 

Para corregir este error es necesario agregar la opción  -Wl,–no-as-needed a las opciones del compilador. Esto se hace en el archivo CMakeLists.txt

donde las líneas

SET (CMAKE_CXX_FLAGS_RELEASE " -O3 -DNDEBUG ${WALL} " CACHE INTERNAL "C Flags for release" FORCE)
SET (CMAKE_CXX_FLAGS_DEBUG " -ggdb ${WALL} " CACHE INTERNAL "C Flags for debug" FORCE)
SET (CMAKE_CXX_FLAGS_PROFILE " -O3 -ggdb -pg ${WALL} " CACHE INTERNAL "C Flags for profile" FORCE)

Las cambié por:

SET (CMAKE_CXX_FLAGS_RELEASE " -O3 -DNDEBUG -Wl,--no-as-needed" CACHE INTERNAL "C Flags for release" FORCE)
SET (CMAKE_CXX_FLAGS_DEBUG " -ggdb -Wl,--no-as-needed " CACHE INTERNAL "C Flags for debug" FORCE)
SET (CMAKE_CXX_FLAGS_PROFILE " -O3 -ggdb -pg -Wl,--no-as-needed " CACHE INTERNAL "C Flags for profile" FORCE)

 

Traza de comandos usados

Una vez detectado los paquetes correctos, hice una instalación en limpio en la máquina de mi casa. La instalación se hizo en unos 20 minutos con un enlace  ADSL de 1 MB/seg. Una vez obtenidos los paquetes y creado el directorio donde se compilara la biblioteca, usé los siguientes comandos (lista obtenida con el comando history):

#Compilación de Player

cd playerStage_fuentes/
ls
tar -xzvf player-3.0.2.tar.gz
cd player-3.0.2/
ls
mkdir build
cd build
ls
cmake ../
make
sudo make install

#Compilación del Stage

560 cd ../..
ls
tar -xzvf Stage-3.2.2-Source.tar.gz
cd Stage-3.2.2-Source/
ls
mkdir build
gvim CMakeLists.txt
cd build/
ls
cmake ../
make
sudo make install

Listo !!!! :)

 

Variables a definir en el ~/.bashrc

STAGE_INSTALL_DIR=/usr/local/
export LD_LIBRARY_PATH=$STAGE_INSTALL_DIR/lib
export STAGEPATH=$STAGE_INSTALL_DIR/lib
export PLAYERPATH=$STAGE_INSTALL_DIR/lib

 

Ejemplo de Makefile

CC= g++
OPC= `pkg-config --cflags playerc++`
INC=
LIB= `pkg-config --libs playerc++`

default: robotBasico.exe

robotBasico.exe: robotBasico.o
	$(CC) -o $@  $^ $(LIB) 

robotBasico.o: robotBasico.cpp
	$(CC) -c $< $(OPC) $(INC)  

clean:
	rm -f *.o *.exe

Para Ubuntu 12.04 LTS

La versión 12.04 LTS debería tener soporte hasta el año 2017, pienso que es una de las mejores y estables hasta  hoy (Sep 2013). La instalación que usé fue Mixta, el Player lo descargo ya compilado y el Stage lo bajo y compilo como se explicó anteriormente. Para instalar el Player ya compilado usé:

sudo apt-get install robot-player robot-player-dev robot-player-doc

luego se compila el Stage, se instala y listo.

  Una respuesta a “Paquetes requeridos para instalar Player & Stage en Ubuntu 11.10, actualizado para Ubuntu 12.04 LTS”

  1. Entrada recuperada gracias a Pablohn

 Deja un comentario

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(requerido)

(requerido)