jueves, 23 de junio de 2011

9 pasos para configurar OpenFrameworks en Ubunutu

Hola nuevamente estoy escribiendo ya que por fin pude compilar un proyecto de prueba en Ubuntu con code::blocks y estoy emocionado ya que primero que todo soy "primiparo" con linux el cual siempre me ha parecido algo complejo de manipular y de entenderlo después de llevar 25 años manejando puro windows (siempre he creído que linux es exclusivamente para profesionales) y segundo que todo por que me estoy cogiendo un poco mas de confianza con el sistema operativo y esa es una buena señal.

Entrando en materia, primero quiero decir que es un poco complejo de explicar esta parte ya que como no conosco muy bien ubuntu como tal, he decidido descomprimir los archivos del framework en un directorio que se puede visualizar desde windows, esto puede ser un problema al entender pero instale ubuntu encima de windows.

Descarga de OpenFrameworks para linux

(recordar que ya debe de estar instalado codeblocks)

1. Descargar el framework desde la página: http://www.openframeworks.cc/download en el link que dice "code blocks FAT" por si se tiene un procesador de 32 bits y "(64 bit) code blocks FAT" por si se tiene un procesador de 64 bits.
2. Descomprimir los archivos en el directorio donde se quiera trabajar.
Tener en cuenta que en la carpeta "apps" es donde deben ir los proyectos propios, y recordar que para mayor comodidad y orden con los proyectos, crear una carpeta (con cualquier nombre) dentro de "apps" para crear todos lo proyectos propios ahí.

Configurar OpenFrameworks en Codeblocks

3. Crear un nuevo proyecto vacío con codeblokcs
4. click derecho en el "iconito" del proyecto en el panel "Projects" (proyectos) - Add Files Recursively...
Muestra un cuadro de exploración donde tenemos que buscar los headers del framework con la ruta "libs/openframeworks"
5. Click en Abrir
Muestra un cuadro de dialogo mostrando todos los directorios que van a agregar al proyecto y dar click en Aceptar.
Muestra un segundo cuadro de dialogo mostrando los blancos a los que queremos incluir los archivos, seleccionamos "Debug" y "Release" y clickear en Aceptar.
Se agregan todos los headers del framework en el siguiente orden:
-Workspace:
---[Nombre del proyecto]:
--------Headers:
------------libs:
---------------openFrameworks:
---------------------app
---------------------communication
---------------------events
---------------------graphics
---------------------sound
---------------------utils
---------------------video
---------------------ofMain.h (archivo el cual tenemos que incluir en nuestro archivo main.cpp

6. Crear nuevo archivo main.cpp
7. escribir en main.cpp:

#include

int main()
{
}

Si compilamos nos va a salir este error:
|1|fatal error: ofMain.h: No existe el fichero o el directorio|

esto quiere decir que nos falta vincular los archivos headers o .h en la compilación:
para hacer esto vamos a hacer lo siguiente:

8. Click derecho en el icono del proyecto - Build Options... - (muestra un cuadro de propiedades) - [Seleccionar el nombre del proyecto dentro del cuadro de dialogo] - Search Directories - Compiler
9. Click en Add
Muestra un cuadro de dialogo donde tenemos que listar los directorios que contienen los headers:
-libs:
----openFrameworks
----openFrameworks/apps
----openFrameworks/communication
----openFrameworks/events
----openFrameworks/graphics
----openFrameworks/sound
----openFrameworks/utils
----openFrameworks/video

Con estos directorios no basta para poder compilar correctamente ya que nos saldrán los siguientes errores:
../../../libs/openFrameworks/utils/ofConstants.h|100|fatal error: GLee.h: No existe el fichero o el directorio|

Esto quiere decir que hay que agregar los demas directorios que estan en "libs":
-libs:
----fmodex/include
----FreeImage/include
----freetype/include
----glee/include
----gstappsink/include
----rtAudio/include
----poco/include/Poco
----poco/include

Al parecer todo esta bien, pero si compilamos mostrará el siguiente error:
../../../libs/openFrameworks/video/ofGstUtils.h|4|fatal error: gst/gst.h: No existe el fichero o el directorio|

hay que incluir estos directorios:
del directorio usr:
------include
------include/gstreamer-0.10
------include/glib-2.0
------include/lib/x86_64-linux-gnu/glib-2.0/include
------include/libxml2

Si compilamos ya no obtendremos ningun problema, hasta ahora...

Ya con esto OpenFrameworks queda instalado y configurado para ubuntu con codebloks, cualquier problema se puede discutir en este mismo post.
Ojala que les sea de su agrado.

Andrés Camilo
Junio 23 de 2011

Link de instalacion OpenFrameworks para linux con codeblokcs

Realmente hoy no he tenido tiempo de realizar paso a paso esta instalación, pero dejo aquí un link para tenerlo en cuenta:
por la noche cuando tenga tiempo, me propongo a realizar la instalación de OpenFrameworks para linux en Ubunutu con Code::Blocks y estaré comentando todo lo que hice así obtenga problemas y errores en compilación.

miércoles, 22 de junio de 2011

22 pasos para iniciar OpenFrameworks

Hola, he creado este blog para escribir mis notas acerca del framework "OpenFrameworks" el cual se trata de un conjunto de Apis, frameworks y/o bibliotecas de código para desarrollar aplicaciones gráficas interactivas. Actualmente este framework posee una gama de bibliotecas como OpenGL para gráficos 2d y 3d, OpenCV para procesamiento de imagen y video digital, entre otros. Hago énfasis en estos dos ya que actualmente son los que me interesa trabajar.
Yo soy novato con este framework y me interesa aprenderlo por diferentes razones los cuales me privo de comentarlos, pero por otro lado principalmente me interesa todo lo que tenga que ver con la conexión entre la ingeniería, la programación, el código y el arte, y creo que OpenFrameworks puede ser una excelente herramienta para desarrollar tal fin.
La página web de OpenFrameworks es: http://www.openframeworks.cc/ ahí encontraremos diferentes ejemplos reales, documentación, wiki, foros, comunidad y la sección de descarga del framework para diferentes plataformas (windows, mac y linux) y para diferentes IDES de desarrollo (VS 2008, VS 2010, CodeBlocks y XCode de mac).
También existe otra herramienta que tiene los mismos objetivos llamada CINDER: http://libcinder.org/ por si a alguien le interesa mas que OpenFrameworks.

La idea con estas notas es conservar todas las experiencias con OpenFrameworks desde el inicio, colocando los problemas y obstáculos que se tengan durante el transcurso del tiempo, con un proyecto determinado y/o con el compilador de C++ el cual (no puedo desconocer) siempre tiene sus trabas, además siempre es mejor compartir estas experiencias con los demás desarrolladores, artistas y a fines para lograr nuevas y mejores experiencias y soluciones. Pero principalmente quiero anotar todo lo que haga con esta herramienta ya que muchas veces se me olvidan muchos detalles en el inicio, en el durante y en el después de la ejecución de un proyecto.

Quiero iniciar la secuencias de notas explicando y explicándome como instalar OpenFrameworks para windows con VS 2010 (el cual se puede descargar de la página: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express), pero la idea es también saber instalar OpenFrameworks en linux, sobre todo en Ubuntu ya que últimamente estoy trabajando desde esta plataforma. Cuando sepa o haya experimentado este caso, inmediatamente lo anotaré, a no ser que alguien se me anticipe y si es así quedaré totalmente agradecido.

1. Descargar el instalador de Visual C++ Express versión 2010
2. Instalar el IDE (aquí hay un ejemplo para la versión 2008 el cual es la misma cosa para la version 2010: http://www.openframeworks.cc/setup/vs-2008 )
3. Descargar OpenFrameworks de la página: http://www.openframeworks.cc/download el link que dice "visual studio 2010 FAT" (FAT quiere decir que incluira todos los Addons los cuales son complementos que tiene implementado el framework)
4. Descomprimir en cualquier parte donde desee

En este momento el framework ya quedó instalado, no hay que hacer nada mas...
En la carpeta "apps" están todos los ejemplos comentados para tener un mejor entendimiento acerca del framework, pero aquí es donde hay que crear todos los proyectos propio (personalmente yo cree una carpeta llamada "myApps" dentro de la carpeta "apps" para llevar un orden lógico)
5. Después de abrir el IDE, crear un nuevo proyecto vacío dentro de la carpeta "myApps" y desactivar el "checkbox" que dice "Crear directorios para la solución", esto permite tener una mejor integración con los headers del framework.
6. click en Aceptar

Vincular el proyecto OpenFramewoks compilado:

7. Click derecho en la solucion del panel "Explorador de soluciones" > Agregar > Proyecto existente
8. Nos muestra una ventana de exploración y buscamos el proyecto OpenFrameworks compilado en la siguiente ruta: "libs\openframeworksCompiled\project\vs2010\" y seleccionamos el archivo "openframeworksLib"
9. Click en Abrir

Automáticamente agrega el proyecto en la solución creada, esto permite que podamos acceder a los archivos .h o cabeceras del frameworks e incluirlos en nuestro proyecto #include.

Configuración del proyecto:

Antes de configurar las propiedades del proyecto hay que crear el archivo main.cpp, el cual es el archivo de entrada en la ejecución de la aplicación.

10. Seleccionar el proyecto propio
11. Click en Proyecto > Propiedades
Nos muestra un cuadro de propiedades
12. Seleccionar Propiedades de configuración > C/C++ > General > Directorios de inclusión adicionales >
Nos muestra un cuadro de dialogo
13. En la lista ingresamos las rutas de los headers del frameworks:
..\..\..\..\libs\openFrameworks
..\..\..\..\libs\openFrameworks\graphics
..\..\..\..\libs\openFrameworks\app
..\..\..\..\libs\openFrameworks\sound
..\..\..\..\libs\openFrameworks\utils
..\..\..\..\libs\openFrameworks\communication
..\..\..\..\libs\openFrameworks\video
..\..\..\..\libs\openFrameworks\events
..\..\..\..\libs\glut\include
..\..\..\..\libs\rtAudio\include
..\..\..\..\libs\quicktime\include
..\..\..\..\libs\freetype\include
..\..\..\..\libs\freetype\include\freetype2
..\..\..\..\libs\freeImage\include
..\..\..\..\libs\fmodex\include
..\..\..\..\libs\videoInput\include
..\..\..\..\libs\glee\include
..\..\..\..\libs\glu\include
..\..\..\..\libs\poco\include
..\..\..\addons

14. Click en Aceptar
15. Seleccionamos C/C++ > Preprocesador > Definiciones de preprocesador >
Muestra un cuadro de dialogo donde tenemos que ingresar en el campo de texto lo siguiente:
WIN32
_DEBUG
_CONSOLE
POCO_STATIC

16. Click en Aceptar
17. Seleccionamos Vinculador > General > Directorio de bibliotecas adicionales >
Muestra un cuadro de dialogo con un campo de texto donde hay que colocar las rutas de las bibliotecas estaticas del framework:
..\..\..\libs\glut\lib\vs2010
..\..\..\libs\rtAudio\lib\vs2010
..\..\..\libs\FreeImage\lib\vs2010
..\..\..\libs\freetype\lib\vs2010
..\..\..\libs\quicktime\lib\vs2010
..\..\..\libs\fmodex\lib\vs2010
..\..\..\libs\videoInput\lib\vs2010
..\..\..\libs\glee\lib\vs2010
..\..\..\libs\glu\lib\vs2010
..\..\..\libs\openFrameworksCompiled\lib\vs2010
..\..\..\libs\poco\lib\vs2010

18. Click en Aceptar
19. Seleccionar Viculador > Entrada > Dependencias adicionales >
Muestra un cuadro de dialogo en el que hay colocar los nombres de la bibliotecas estaticas avincular:

openframeworksLibDebug.lib
OpenGL32.lib
GLu32.lib
kernel32.lib
setupapi.lib
glut32.lib
rtAudioD.lib
videoInput.lib
libfreetype.lib
FreeImage.lib
qtmlClient.lib
dsound.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
GLee.lib
fmodex_vc.lib
glu32.lib
PocoFoundationmtd.lib
PocoNetmtd.lib
PocoUtilmtd.lib
PocoXMLmtd.lib

20. Click en Aceptar
21. Seleccionar Vinculador > Entrada > Omitir bibliotecas predeterminadas específicas >
Muestra un cuadro dialogo donde hay que colocar lo siguiente:
atlthunk.lib
LIBC.lib
LIBCMT

22. click en Aceptar

Son 22 pasos los cuales explican como se puede iniciar un proyecto de OpenFrameworks con Visual C++ 2010. Mañana escribiré sobre la nueva experiencia que tenga programando OpenFrameworks.

Espero que sea de su agrado, si se encuentra con cualquier dificultad al realizar este proceso, lo podemos discutir en este mismo post.
Gracias
Andrés Camilo
23 Junio de 2011