ok estuve revisando el ambiente y al parecer me equivoque en la
versión 8.02 de Codeblocks solamente integraron los compiladores de
GCC y G++ q en tiempos pasados había que incorporar al ambiente "a
pata"; ahora este trabajo se nos facilita ya vienen incorporados, pero
bien el de los wxWidgets no entonces que hay que hacer??
1. Un libro (reemplaza al profesor o al asistente). Voy a buscar el
libro de widgets en formato .chm (en alguna parte lo tengo que tener),
si lo llego a encontrar lo voy a esta subiendo al moodle antes del
domingo espero... Siiino bienvenidos sean Google, los wxWiki (http://
wiki.wxwidgets.org/Main_Page) y el foro de los wxWidgets (http://
wxforum.shadonet.com/)
2. La documentación del API (Application Programming Interface). Se
puede obtener la última versión (2.8.10) en la página de los wxWidgets
(
http://www.wxwidgets.org/docs/ ) ... lo cual tiene sentido si usan
esa versión de la biblioteca.
3. Paciencia y café!!
ahora si vamos a lo que nos interesa!! me tome un buen rato buscando
esto esta un poco largo y aunque no es algo que se vea en clase
precisamente creo es bastante interesante ojala le tomen el gusto...
creo q es importante saber lo que se esta haciendo por eso las
habladas... y en realidad no es tan complicado asi que no le tengan
miedo solo dediquelen su tiempo... ;-)
INTRO...
Entre tantos IDE (Integrated Development Environment) libres
existentes en el mercado, Code::Blocks sobresale entre otras
características por ser multiplataforma, código abierto y escrito con
los mismos wxWidgets (este es el dato curioso). Este último aspecto
ayuda a que el programador que esté diseñando una interfaz gráfica,
utilice instancias de los mismos controles que verá cuando el programa
se esté ejecutando; característica que golpea al wxDevC++ por estar
implementado en Delphi. (si alguien penso en utilizarlo porque es mas
facil de instalar que codeblocks mejor digamole adios)
ok voy haciendo esto a lo que recuerdo, algunos de los pasos se llevan
su buen rato ya que hay que hacer descargas y bueno hay que
esperar... asi que di voy probando, quiere decir que hasta que no lo
pruebe no garantizo que funcione lo pongo de una vez para que vallan
traveciando ustedes, en realidad en eso consiste la tarea... asi que
solo les doy una buena soplada, un poco de ayuda y el resto corre por
sus cuentas...
esto creo lo necesitamos ahora vemos MinGW_v4.3.2_TMD-2 (1.812.0) de
este link
http://wxpack.sourceforge.net/Main/Downloads
y el código de los widgets este fijo link:
http://www.wxwidgets.org/downloads/
Compilar los widgets:
La biblioteca wxWidgets contiene más de 3,500 archivos .h y .cpp.
Ustedes podrían incluir estos archivos en su proyecto normal(la
tarea), pero no será agradable presionar F9 para compilarlo, ni para
mi ni para nadie y menos ver los warnings de código ajeno. Por esto,
es recomendable compilar este megapaquete de código fuente para
obtener código objeto que usted podrá posteriormente ligar a su
proyecto. Los pasos para hacer esta tarea están documentados en
múltiples lugares, en especial, el README.txt, el wiki de los
wxWidgets y el wiki de Code::Blocks. Es muy recomendable que visite
estos sitios y trate de encontrar la documentación que necesite, ya
que ésta varía con irresistible facilidad, y pueda que el
procedimiento siguiente no sea funcional en el futuro.
1. Descargue el código fuente de los wxWidgets en la sección
Download del sitio oficial. Usted puede descargar sólo el subconjunto
para su plataforma (wxMSW por ejemplo), pero es muy aconsejable
descargue todo el paquete (wxAll), ya que si lo extrae en una carpeta
ubicada en una partición compartida entre Windows y Linux, puede
aprovecharlo en ambos. Al final de la descarga obtendrá un archivo
llamado algo similar a wxWidgets-2.8.10.tar.gz
2. Desempaque el archivo a una carpeta, sea por ejemplo "C:
\Cpp\". Obtendrá una subcarpeta "wxWidgets-2.8.10". En este documento
se asume que dicha carpeta se renombró a "C:\Cpp\wxWidgets" (ojo al
directorio...).
3. Asumo que tienen un compilador ya instalado (como MinGW 4)
por lo q el paso de instalacion del compilador lo voy a omitir, aunq
no se la verdad si ya codeblocks 8.02 se los provee dentro de su
instalación, si tienen problemas con esto nada mas para eso es este
grupo.. para preguntar...
4. Abra un intérprete de comandos (Start|Run|"cmd"). Cambie
la variable ambiente PATH para incluir el compilador de c++
asi:
path=C:\Cpp\MinGW4\bin
5. Vaya al directorio donde extrajo los wxWidgets. Ahora
usted debe llamar al compilador de g++ con cada uno de los 3,500
archivos que forman parte del paquete y los requerimientos que cada
uno tenga. Por suerte existe un archivo que hace esto automáticamente,
llamado "makefile". Puede pensarse que consiste en una serie de
comandos, que en lugar de ser escritos manualmente por una persona, la
computadora los ejecuta uno a uno en lote, pero con una notación más
versátil que la permitida por el intérprete de comandos del sistema
operativo (cmd). Este archivo se encuentra en la subcarpeta "build
\msw" para Windows.
asi:
cd C:\Cpp\wxWidgets\build\msw
6. Debido a que el usuario puede compilar los wxWidgets con
distintos compiladores y cada uno tiene diferentes parámetros, existe
un makefile para cada compilador popular. El correspondiente a GCC se
llama makefile.gcc. Para iniciar el proceso de compilación basta con
invocar "mingw-make -f makefile.gcc", el cual asumirá varios
parámetros que quizá ustedes quieran cambiar.
7. La biblioteca puede compilarse habilitando o no varias
características, como acceso a base de datos, GUI, Unicode, debug, y
muchas otras. Las opciones que mingw-make utilizará por defecto se
pueden ver en el archivo config.gcc ubicado también en la carpeta
"build\msw". Usted puede editar el archivo y cambiarlas directamente
en él o bien, cuando invoque a mingw-make alterar algunas a través de
parámetros. En este laboratorio se compilará la biblioteca habilitando
Unicode, en un único paquete. Usted decidirá si en dll o estático de
la versión release. Esto se explica a continuación.
8. Si la biblioteca se compila utilizando Unicode, todos los
caracteres y cadenas de caracteres usados dentro de la biblioteca y
los programas que usted haga, deberán ser de 2 bytes. Esto permite que
un mismo programa pueda trabajar con caracteres de distintos idiomas,
incluso muy heterogéneos. Esta es una característica agradable, aunque
tiene un precio. Además de ocupar más memoria, cualquier cadena que no
esté en Unicode deberá convertirse para ser usada en su programa. Esto
incluye a las cadenas y caracteres que usted emplee en sus archivos
fuente (.h y .cpp). En la versión 2 de los wxWidgets esta conversión
debe hacerla explícitamente el programador con las macros wxT() y _().
9. La biblioteca wxWidgets es enorme, por lo que sus
desarrolladores la dividieron en varios paquetes. Las clases comunes
se encuentran en el wxCore. Las clases relacionadas con XML en el
paquete wxXml y así por el estilo. Usted puede compilar la biblioteca
y generar archivos de código objeto diferentes para cada módulo, o por
el contrario, aglutinar todos en uno solo. Si se hace lo segundo se
dice que la biblioteca fue compilada en forma monolítica, y ese será
el caso en este laboratorio.
10. Cuando usted escribe un programa que utiliza wxWidgets,
necesitará incluir los .h y .cpp en su proyecto. Ya se dijo que esto
es impráctico, en su lugar se va a incluir los wxWidgets como código
objeto ya compilado dentro de su ejecutable. La herramienta que hace
este proceso es el linker (ld.exe), el cual puede ligar los wxWidgets
a su ejecutable en dos formas: estática o dinámica.
El ligado estático consiste en insertar el código objeto
en el ejecutable, lo cual genera un .exe bastante voluminoso; pero con
la agradable ventaja de que este ejecutable es independiente de
archivos externos. Basta con distribuirlo y los usuarios pueden
ejecutarlo sin dependencias.
La contraparte es el ligado dinámico, el cual consiste en
concentrar la biblioteca wxWidgets en un .dll (o varios si NO es
monolítica) y su ejecutable simplemente hace uso de dicho dll. Este
método tiene la agradable ventaja de que el tamaño del ejecutable es
muy reducido, pero con el inconveniente de que depende del .dll con
que se ligó. El programador deberá distribuir el dll junto con su
ejecutable, y la licencia de wxWidgets le permite hacer esto. Para
compilar la biblioteca en un .dll, deberá encender la bandera SHARED=1
cuando la compile.
11. Con las instrucciones anteriores están list@s para
compilar la biblioteca. Escojan las que quiera e invoque al make de
mingw:
C:\Cpp\wxWidgets\build\msw>mingw32-make -f makefile.gcc
UNICODE=1 MONOLITHIC=1 SHARED=0 BUILD=release
12. Por sus pantallas desfilarán comandos y warnings por
alrededor de 20 minutos, dependiendo de la velocidad de su equipo.
Aquí vayan por el café :-P
13. Ahora haga un "wxHola mundo". Inicie un nuevo proyecto,
escoja el "wxWidgets project" y siga los pasos. Posiblemente su
"Preferred GUI Builder" llegue a ser wxSmith y prefiera las
aplicaciones "Frame based". A la hora de escoger el compilador,
asegúrese de usar el "GNU GCC Compiler". El wxWizard le puede
configurar su proyecto para generar un ejecutable tipo "debug" y otro
tipo "release". Para que ambos funcionen, usted debió compilar la
biblioteca en ambos BUILD (target y release). Si no lo hizo, sólo
marque la que compiló (probablemente la release).
En la penúltima pantalla debe escoger las mismas opciones
con las que compiló la biblioteca. Si marca "Create empty project" el
wizard le generará un archivo de proyecto configurado para wxWidgets
pero sin código fuente. Esto es útil para importar los archivos
fuentes de un proyecto ajeno, por ejemplo, hecho con el wxDevC++. Si
no la marca, el wxWizard generará algún código fuente equivalente a un
"Hola mundo" con wxWidgets, esto es un main, una clase heredada de
wxApp y un MainFrame que puede diseñar con el wxSmith.
Voy por aqui y ya tengo sueño ustedes fijo tambien... :s falta poco...
14. Si marca la casilla "Configure advanced options" le
llevará a una pantalla más, que típicamente no se altera, a menos de
que quiera construir una aplicación en línea de comandos que emplee
wxWidgets.
15. Presione F9 y si la biblioteca está adecuadamente
compilada y configurada en el IDE, obtendrá una aplicación wx
ejecutándose.
16. FELICIDADES!!!
el proceso para linux es mas sencillo pero tengo sueño asi que prueben
esto y en el transcurso del fin de semana lo pruebo tambien y lo hago
en linux ahi les paso los tips!!