Openframeworks 0.05 + codeblocks


made with openFrameworks from openFrameworks on Vimeo.


Para los que no conocen OF (Openframeworks), es una librería para C++ para facilitar la creación de aplicaciones multimediales, con una sintaxis similar a processing, diseñada para trabajar con openGL , rtAudio, freeType, freeImage, y quicktime.

Como es una librería de C++, indagué primero por las IDE's recomendadas entre las que se encuentran Eclipse y Codeblocks, ya conocía la primera, así que prové codeblocks y me pareció una excelente opción, es una IDE completa y liviana, así que dejaremos el eclipse para java.

Para probarlo simplemente se descarga de la página, se descomprime y ya, los ejemplos vienen con el proyecto en codeblocks así que simplemente abrimos un proyecto y ya tenemos todo importado con la jerarquía que necesitamos para trabajar openframeworks.

Para poder ejecutar las aplicaciones deberíamos tener instalado:
freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev
Para mi caso en gentoo instalé media-libs/glut, en vez de freeglut que me dió problemas.

A la hora de provarlo hasta el momento no ha funcionado en 64bits, me bota el error
Linking console executable: bin/imageLoaderExample_debug
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible ../../../libs/fmodex/lib/libfmodex.so when searching for -lfmodex
../../../libs/ffmpeg/libavcodec/libavcodec.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
Leyendo tenía dos opciones la jaula de 32 bits o construir openframeworks con las versiones de 64bits de la librerías de las que depende. Como tengo una jaula de 32 bits primero probé ahí.

En la jaula de 32bits, inicialmente botaba errores de compilación, chequeándo en el foro encontré que el problema radica en que codeblocks cuando la salida del gcc no está en inglés cree que todos los warnings son errores, la respuesta la encontré aquí, simplemente ejecutamos export LC_ALL=C y en la misma consola llamamos a codeblocks.

Por fin openframeworks trabajando!!!!


Ahora vamos a tratar la segunda opción, trabajar con las librerías de 64 bits.

Para esto vamos a nuestro directorio de descarga de openframework desde la consola, e ingresamos a libs/, empezaremos en orden así que vamos a ffmpeg/libavcodec/ allí encontraremos 4 archivos que deberemos borrar, mover o renombrar, y reemplazarlos por los del sistema (naturalmente debes tener instalado ffmpeg), yo decidí moverlo y luego hacer un enlace simbólico a la ruta que encontré en el sistema gracias al comando locate.

ln -s /usr/include/ffmpeg/avcodec.h ./
ln -s /usr/lib64/libavcodec.a ./
ln -s /usr/lib64/libavcodec.so ./
ln -s /usr/lib64/libavcodec.so.51 ./
recuerden estar parados en of-path/libs/ffmpeg/libavcodec/

Nos devolvemos a libs/ffmpeg y seguimos de la misma manera con las otras dos carpetas libavformat y libavutil.

oceano libavcodec # cd ..
oceano ffmpeg # cd libavformat/
oceano libavformat # ln -s /usr/include/ffmpeg/avformat.h ./
oceano libavformat # ln -s /usr/lib64/libavformat.so.51 ./
oceano libavformat # ln -s /usr/lib64/libavformat.so ./
oceano libavformat # ln -s /usr/lib64/libavformat.a ./
oceano libavformat # cd ..
oceano ffmpeg # cd libavutil/
oceano libavutil # ln -s /usr/lib64/libavutil.a ./
oceano libavutil # ln -s /usr/lib64/libavutil.so ./
oceano libavutil # ln -s /usr/lib64/libavutil.so.49 ./
oceano libavutil # ln -s /usr/include/ffmpeg/avutil.h ./
oceano libavutil # ln -s /usr/include/ffmpeg/common.h ./
oceano libavutil # ln -s /usr/include/ffmpeg/integer.h ./
oceano libavutil # ln -s /usr/include/ffmpeg/intfloat_readwrite.h ./
oceano libavutil # ln -s /usr/include/ffmpeg/mathematics.h ./
oceano libavutil # ln -s /usr/include/ffmpeg/rational.h ./
oceano libavutil # ln -s /usr/include/ffmpeg/log.h ./

Terminamos ffmpeg, seguimos con fmodex, para esto necesitamos instalado fmod, y repetimos el procedimiento:

oceano libavutil # cd ..
oceano ffmpeg # cd ..
oceano libs # cd fmodex/inc/
oceano inc # ln -s /usr/include/fmodex/fmod_codec.h
oceano inc # ln -s /usr/include/fmodex/fmod_dsp.h
oceano inc # ln -s /usr/include/fmodex/fmod_errors.h
oceano inc # ln -s /usr/include/fmodex/fmod.h
oceano inc # ln -s /usr/include/fmodex/fmod.hpp
oceano inc # ln -s /usr/include/fmodex/fmod_output.h
oceano inc # cd ..
oceano fmodex # cd lib/
oceano lib # ln -s /usr/lib64/libfmodexp.so ./
oceano lib # ln -s /usr/lib64/libfmodexp.so.4.11.03 ./libfmodexp.so.4.08.00
oceano lib # ln -s /usr/lib64/libfmodex.so ./
oceano lib # ln -s /usr/lib64/libfmodex.so.4.11.03 ./libfmodex.so.4.08.00

en la carpeta plugins todos los que encontrarás en el sistema terminan en 64 así que hay que renombrarlos, y no encontré los archivos codec_flac, codec_vag y dsp_lowpass_simple en el sistema así que le dejé los originales.

oceano lib # cd ..
oceano fmodex # cd plugins/
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_aiff64.so ./codec_aiff.sooceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_cdda64.so ./codec_cdda.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_dls64.so ./codec_dls.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_fsb.so ./
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_it64.so ./codec_it.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_midi64.so ./codec_midi.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_mod64.so ./codec_mod.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_mpeg64.so ./codec_mpeg.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_oggvorbis64.so ./codec_oggvorbis.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_playlist64.so ./codec_playlist.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_raw64.so ./codec_raw.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_s3m64.so ./codec_s3m.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_sf264.so ./codec_sf2.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_tag64.so ./codec_tag.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_wav64.so ./codec_wav.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/codec_xm64.so ./codec_xm.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_chorus64.so ./dsp_chorus.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_compressor64.so ./dsp_compressor.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_distortion64.so ./dsp_distortion.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_echo64.so ./dsp_echo.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_flange64.so ./dsp_flange.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_highpass64.so ./dsp_highpass.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_itecho64.so ./dsp_itecho.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_lowpass264.so ./dsp_lowpass2.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_lowpass64.so ./dsp_lowpass.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_normalize64.so ./dsp_normalize.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_oscillator64.so ./dsp_oscillator.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_parameq64.so ./dsp_parameq.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_pitchshift64.so ./dsp_pitchshift.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_reverb64.so ./dsp_reverb.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/dsp_sfxreverb64.so ./dsp_sfxreverb.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/output_alsa64.so ./output_alsa.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/output_esd64.so ./output_esd.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/output_nosound64.so ./output_nosound.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/output_oss64.so ./output_oss.so
oceano plugins # ln -s /usr/lib64/fmodex/plugins/output_wavwriter64.so ./output_wavwriter.so

el proceso se repite sucesivamente para el resto de librerías.


Agrego: al tiempo que estaba haciéndo esto encontré que arturo y muchos otros ya lo habían hecho, pero arturo tuvo la amabilidad de subirlo y compartirlo listo para usar. Les dejo el link de descarga y en enlace al post donde encontré el enlace.

descarga of_64bits

4 comentarios:

MCKAY Brothers dijo...

sos barbaro no, veo que le pusiste sason con las cosas que ocurren, las maquinas de 64 bits son la revolucon, es como el paso de 16bits a 32bits que ocurrio cuando las 286, 386 y 486.. de intel y amd..

bueno aun el soporte de la mayoria de los soft del mercado multimedia es solo para 32bits, y esta noticia es muy buena por eso..

tndre que ponerme al dia, ya que pude hacer funcionar una K-WORLD usando esta linea:
"modprobe bttv i2_scan=0 card=75"

PAckages nuevos, via, openchrome y radeonhd

Sergio Esteban dijo...

eso si, yo trato de aprovechar al máximo mi máquina, así que hago todos los esfuerzos para correr todo en 64bits, muchas cosas ya funcionan de maravilla, y en caso que no pueda pues tengo mi jaula de 32bits, aunque siempre estoy mirando haber si el soft se actualiza o hay algún personaje que descubrió el modo de hacerlo funcionar en 64.

Seguiremos trabajando porque coincido en que este es el futuro, un futuro a 64bits.

MCKAY Brothers dijo...

bueno lo malo es que los paquetes que hago son 32bits ya que al igual que el proyecto de modulos accelerador GPL para las nvidia, con cuento con hardware para compilar y empaquetar..

no puedo hacer jaulas de 64bits ya que ocupan espacio y los 6G de la 486 no creo sean suficientes..

ya viste los paquetes, visita el blog.. te los puedo enviar email mientras el repositorio esta listo...

MCKAY Brothers dijo...

revisa esto

Nouveau : Open Source 3D acceleration for nVidia cards « Since 1977