Archivos de Tags: 11.10 @es

Instalar la librería collada-dom en Ubuntu 10.04, 10.11, 11.04, 11.10 y 12.04

Quería instalar collada-dom para añadir el soporte de ficheros DAE a OpenSceneGraph. Para instalarlo usé el código del repositorio SVN a fecha 2011/03/12 (simplemente porque ya lo tenía descargado de hace tiempo y sabía que funcionaba). Se puede descargar la versión de ese mismo día con el siguiente comando:

svn co -r {20110312} https://collada-dom.svn.sourceforge.net/svnroot/collada-dom/trunk collada-dom

La última versión del trunk SVN falla al compilar los projectos rt y fx e incluso no funciona con OpenSceneGraph (al parecer unos tipos de datos han desaparecido de Collada DOM y el plugin para ficheros DAE de OpenSceneGraph aún los usa). De todas maneras si quieres intentarlo esta es la manera de bajarse la última versión:

svn co https://collada-dom.svn.sourceforge.net/svnroot/collada-dom/trunk collada-dom

Instalar estas dependencias para Ubuntu 10.04:

sudo apt-get install libboost1.40-dev libpcre++-dev nvidia-cg-toolkit libboost-filesystem1.40-dev libglut3-dev

Para Ubuntu 10.10 y 11.04 instalar estas:

sudo apt-get install libboost1.42-dev libpcre++-dev nvidia-cg-toolkit libboost-filesystem1.42-dev libglut3-dev

Para Ubuntu 11.10 y 12.04 instalar estas:

sudo apt-get install libboost1.46-dev libpcre++-dev nvidia-cg-toolkit libboost-filesystem1.46-dev freeglut3-dev

Para compilar ejecutar, dentro de la carpeta de collada-dom, lo siguiente:

make os=linux project=minizip -C dom
make os=linux project=dom -C dom
make os=linux project=rt -C rt
make os=linux project=fx -C fx

Ahora ya podemos simplemente copiar las librerías y los ficheros de cabecera a “/usr/local/lib” y “/usr/local/include“:

sudo cp dom/build/linux-1.4/libminizip.* /usr/local/lib/
sudo cp dom/build/linux-1.4/libcollada14dom.* /usr/local/lib/
sudo cp -R dom/include /usr/local/include/colladadom
sudo cp rt/build/linux-1.4/libcollada14rt.* /usr/local/lib/
sudo cp fx/build/linux-1.4/libcollada14fx.* /usr/local/lib/

ACTUALIZACIÓN: Solucionados los problemas de compilación e instalación para saltarnos el error con domTest y viewer. También he quitado los proyectos rt y fx porque no son necesarios. Ignorar el resto del post.

Pero como la librería Boost que se usa en Ubuntu 12.04 ha sufrido unos cambios hay que cambiar un poco el código de collada-dom para que funcione: la función native_file_string() ha sido eliminada de Boost así que tenemos que cambiar el fichero “dom/test/1.4/domTest.cpp” en las líneas 91 y 95 para llamar a la función c_str() en vez de a native_file_string(). Es decir, cambiar esto:

string lookupTestFile(const string& fileName) {
	return (dataPath() / fileName).native_file_string();
}

string getTmpFile(const string& fileName) {
	return (tmpPath() / fileName).native_file_string();
}

A esto:

string lookupTestFile(const string& fileName) {
	return (dataPath() / fileName).c_str();
}

string getTmpFile(const string& fileName) {
	return (tmpPath() / fileName).c_str();
}

Tuve otro error mientras compilaba donde domTest se quejaba de que no encontraba la referencia a la librería libboost_system:

make[1]: Entering directory `/home/user/compilations/collada-dom/dom'
Linking build/linux-1.4/domTest
/usr/bin/ld: build/linux-1.4/obj/domTest.o: undefined reference to symbol 'boost::system::system_category()'
/usr/bin/ld: note: 'boost::system::system_category()' is defined in DSO /usr/lib/libboost_system.so.1.46.1 so try adding it to the linker command line
/usr/lib/libboost_system.so.1.46.1: could not read symbols: Invalid operation

Añadí -lboost_system -lboost_filesystem a la variable libOpts en el fichero “dom/make/common.mk” (línea 25) y se solucionó.

libOpts := -lboost_system -l boost_filesystem

También tuve un error similar mientras se compilaba la librería “viewer”, pero como no la necesitamos para nada no hay problema.

Instalar ARToolKit 2.72.1 en Ubuntu 11.10 y 12.04

La instalación es igual que en Ubuntu 10.10 salvo que parece que hay algún problema con el script de configuración. Al ejecutar “./Configure” las librerías de gstreamer no se configuran correctamente en la variable GST_LIBS. Así es como está definida en el script:

GST_LIBS=`pkg-config --libs gstreamer-0.10`

Se puede solucionar el problema añadiendo manualmente la variable GST_LIBS a la definición de la variable LIBS:

LIBS="-lpthread -lglut -lGLU -lGL -lXi -lX11 -lm $GST_LIBS"

También se puede añadir el resultado de ejecutar el comando “pkg-config --libs gstreamer-0.10” a esa variable, al final las dos maneras hacen que LIBS tenga el siguiente valor:

LIBS="-lpthread -lglut -lGLU -lGL -lXi -lX11 -lm -pthread -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lrt -lglib-2.0"

Es posible que también tengas un problema con V4L al ejecutar make, debido a que han cambiado el nombre del fichero de cabecera “linux/videodev.h” a “libv4l1-videodev.h”. Si te pasa esto cambia ese nombre del fichero de cabecera en los siguientes ficheros de ARToolKit:

include/AR/sys/videoLinuxV4L.h
lib/SRC/VideoLinuxV4L/video.c

Instalar OpenCV 2.3.1a en Ubuntu 11.10

Para instalar la versión 2.1 desde los repositorios ejecutar:

sudo apt-get install libcv-dev libcv2.1 libcvaux-dev libcvaux2.1 libhighgui-dev libhighgui2.1 opencv-doc python-opencv

Por algún cambio introducido en Ubuntu 11.10 falla la compilación de OpenCV 2.3.1a por culpa de ffmpeg. Esto hace que la instalación sea más complicada ya que hay que instalar unas cuantas librerías a mano. La otra opción sería simplemente deshabilitar el uso de ffmpeg en OpenCV mediante ccmake deshabilitando la opción WITH_FFMPEG o pasándole el siguiente parámetro a cmake “-DWITH_FFMPEG=NO”.
Primero hay que desinstalar las librerías que vamos a poner a mano:

sudo apt-get remove ffmpeg x264 libx264-dev

Obtener las dependencias necesarias (por si acaso ejecutar un sudo apt-get update antes):

sudo apt-get install build-essential checkinstall git cmake libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev libtiff4-dev

Instalar gstreamer:

sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg

Descargar, compilar e instalar una versión estable y reciente de x264 (en mi caso fue la x264-snapshot-20111213-2245-stable):

wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/last_stable_x264.tar.bz2
tar -xjvf last_stable_x264.tar.bz2
cd `ls -1d */ | grep x264-snapshot-`
./configure --enable-static
make
sudo make install

Si se está compilando para una arquitectura x64 es posible que se tenga que añadir las opciones --enable-pic y --enable-shared al ejecutar ./configure:

./configure --enable-static --enable-pic --enable-shared

Descargar, compilar e instalar una versión 0.8.x de ffmpeg (en mi caso fue la 0.8.7) (para versiones de OpenCV menores a la 2.3.1 usar una 0.7.x), aunque con la versión 0.10.x también funciona:

wget http://ffmpeg.org/releases/ffmpeg-0.8.7.tar.bz2
tar -xjvf fmpeg-0.8.7.tar.bz2
cd ffmpeg-0.8.7
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab
make
sudo make install

Al igual que pasaba con x264 es posible que se tenga que añadir --enable-pic y --enable-shared al ejecutar ./configure:

./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-pic --enable-shared

Instalar gtk:

sudo apt-get install libgtk2.0-0 libgtk2.0-dev

Instalar libjpeg:

sudo apt-get install libjpeg62 libjpeg62-dev

Descargar, compilar e instalar una versión 0.8.x de v4l (en mi caso fue la 0.8.5 pero la 0.8.8 de abril de 2012 también funciona):

wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-0.8.5.tar.bz2
tar -xjvf v4l-utils-0.8.5.tar.bz2
cd v4l-utils-0.8.5
make
sudo make install

Descargar, compilar e instalar la versión 2.3.1a de OpenCV:

wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2
tar -xjvf OpenCV-2.3.1a.tar.bz2
cd OpenCV-2.3.1
mkdir build
cd build
cmake ..
make
sudo make install

A partir de aquí se puede ver otras opciones de configuración en el post sobre cómo instalar OpenCV en Ubuntu 10.10.

Fuentes: http://ozbots.org/opencv-installation/
http://thebitbangtheory.wordpress.com/2011/10/23/how-to-install-opencv-2-3-1-in-ubuntu-11-10-oneiric-ocelot-with-python-support/