Sobre instalación de codeblocks y wxwidgets

365 views
Skip to first unread message

Roberto Ulloa Rodríguez

unread,
Aug 13, 2009, 8:20:55 PM8/13/09
to Programación II (Grupo 01)
Por lo que leo y el asistente me indica wxwidgets ya fue integrado en
codeblocks por lo que no hay que hacer ninguna pega.

Al menos en Ubuntu 8.04 (Mi versión) el paquete de instalación esta en
el Synaptic.

En Windows debería estar en el instalador que descargan.

Carlos Campos

unread,
Aug 14, 2009, 2:23:29 AM8/14/09
to Programación II (Grupo 01)
Prof hay que compilar con cygwin???

On 13 ago, 18:20, Roberto Ulloa Rodríguez <roberto...@gmail.com>
wrote:

rck.figueroa

unread,
Aug 14, 2009, 4:53:55 AM8/14/09
to Programación II (Grupo 01)
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!!




On 13 ago, 18:20, Roberto Ulloa Rodríguez <roberto...@gmail.com>
wrote:

Roberto Ulloa

unread,
Aug 14, 2009, 1:02:24 PM8/14/09
to ci-12...@googlegroups.com
Muchas gracias, Erick.

Yo, por suerte, cada vez entiendo menos de Güindous.

En serio, en Linux es mucho más fácil. Inclusive si nunca han instalado Ubuntu. Para los que han instalado Ubuntu saben que eso es pegarle un Chonetazo a una lora y luego esperar una media hora mientras se instala.

Lo del compilador queda a criterio del asistente. Les puedo decir que de fijo les va a aceptar g++ aunque es cosa de él si acepta otros compiladores.

Suerte.
--

"Hágale el amor a la vida"
                            Evolución

Alfredo Masis Vargas

unread,
Aug 14, 2009, 6:38:40 PM8/14/09
to Programación II (Grupo 01)
Profe una consulta... Para esta tarea en CodeBlocks se hace como en
java, que primero se crean todas las clases y luego se pega con la
interfaz.... Para poder ir haciendo todo lo de herencia y despues
empezar a hacer lo de los wxWidgets. O todo se monta sobre los
widgets????

rck.figueroa

unread,
Aug 14, 2009, 9:16:56 PM8/14/09
to Programación II (Grupo 01)
La idea de esta primera tarea es que se peleen a pata con los widgets,
ya esta en moodle el libro que les dije que iba a subir

es fácil... en buscar ponen lo que quieren por ejemplo "label" y ahi
les saldra la busqueda que esto genere con todos los temas
relacionados a wxLabel...
en cuanto a como hacer la tarea esta a su criterio al final el
resultado debería ser el mismo.. sin embargo por correcta programación
en general y sobre cualquier programa primero se debe pensar en la
implementacion de la lógica y al final de las interfaces bonitas.. es
decir para que querria yo una ventana con 3 botones que no hacen
nada!...

Roberto Ulloa

unread,
Aug 15, 2009, 10:26:48 AM8/15/09
to ci-12...@googlegroups.com
Sólo agrego que el ejemplo de Figura, Rectángulo y Ovalo lo seguiremos trabajando
en clases, lo cual refuerza lo que dice Erick de que la tarea está enfocada en el
aprendizaje de los WxWidgets.

La programación del diseño de interfaces es, en ambos lenguajes, independiente de la
lógica del programa y la representación de datos. Entonces no importa por donde ud
empiece a programar.

Eso sí, no se debe programar nada antes de no tener una idea general de cómo va a tratar
el problema. En general, va a necesitar un diseño de clases para saber como se van a pegar
las interfaces con la lógica y los datos.

David Villegas

unread,
Aug 16, 2009, 1:40:54 AM8/16/09
to Programación II (Grupo 01)
Gracias Erick, pero tengo una dudas. Con respecto al paso 10, el
archivo del linker ya viene dentro del widgets cuando uno lo descarga,
o debe descargarlo de otro lado y añadirlo al widgets? Y en el paso
11, en que parte es que se enciende la bandera (es decir, en que parte
se escribe o cambia lo de SHARED=1) a la hora de compilar?

Eduardo

unread,
Aug 18, 2009, 12:26:36 AM8/18/09
to Programación II (Grupo 01)
http://www.freelists.org/post/cph-mentoring-redes/Programacin-CodeBlocks-para-windows

En este link se describen los pasos para lo de codeblocks y los
wxwidgets, hay 2 cosas de mas a lo que el profe habia dado...

Yo los hice y funciono... Al fin...

Talvez les sirva.....

Carlos Campos

unread,
Aug 18, 2009, 3:16:12 PM8/18/09
to Programación II (Grupo 01)
Yo estoy teniendo una bronca, no me sirve ni el metodo de erick para
compilar el wxwidgets ni tampoco el que mando eduardo, no habra alguna
otra forma de compilar la wxwidgets

César Augusto

unread,
Aug 18, 2009, 4:09:58 PM8/18/09
to Programación II (Grupo 01)
A la hora de compilar wxWidgets no tuve problemas. De hecho lo que sí
hay que tener es mucho cuidado con la dirección donde se encuentra el
mingw32-make (en mi caso, porque instalé el MinGW4. Lo que yo hice fue
hacer un append en el path, y le agregué la dirección C:\MinGW4\bin).
Entonces el comando que yo usé (eso sí, estando posicionado en la
carpeta de wxWidgets en mi caso C:\wxWidgets-2.8.10) fue la siguiente
linea: mingw32-make -f makefile.gcc. Y empezó a compilar ese montón de
cosas...

César Augusto

unread,
Aug 18, 2009, 4:12:30 PM8/18/09
to Programación II (Grupo 01)
ah... Y me queda de tarea instalar los paquetes para Debian... ; )

Javier Muñoz Barquero

unread,
Aug 18, 2009, 4:17:30 PM8/18/09
to Programación II (Grupo 01)
yo sigo teniendo una bronca.. la consola me pone que "min32-make" no
se reconoce como un comando interno o externo...

Javier Muñoz Barquero

unread,
Aug 18, 2009, 4:19:20 PM8/18/09
to Programación II (Grupo 01)
"ming32-make" digo sorry... y es que yo casi no manejo esa vara en
consola... tons no sé

César Augusto

unread,
Aug 18, 2009, 4:54:34 PM8/18/09
to Programación II (Grupo 01)
Javier, esa bronca es que no ha puesto bien el path en la consola.
Tiene que fijarse bien en donde está el compilador (que ya tuvo que
haber instalado) y fijarse en la carpeta bin, para poner esa dirección
en el path.

Javier Muñoz Barquero

unread,
Aug 18, 2009, 5:12:47 PM8/18/09
to Programación II (Grupo 01)
Di yo ya busque la dirección de ese mingw32, xq yo tambien tenía el
Dev-Cpp como en el ejemplo.. pero me sigue poniendo el mismo error...
vea esto es lo que yo le pongo a ver si me pueden decir en que me
equivoco

C:\> PATH=C:\Program Files\Dev-Cpp\mingw32\bin;

di no me ningún error ni nada... pero igual no sirve tambien lo
intente así:

C:\> set PATH=C:\Program Files\Dev-Cpp\mingw32\bin;

la verdad no sé cual es la diferencia

Roberto Ulloa

unread,
Aug 18, 2009, 8:22:44 PM8/18/09
to ci-12...@googlegroups.com


C:\> PATH=C:\Program Files\Dev-Cpp\mingw32\bin;

di no me ningún error ni nada... pero igual no sirve tambien lo
intente así:

C:\> set PATH=C:\Program Files\Dev-Cpp\mingw32\bin;

la verdad no sé cual es la diferencia

La diferencia es que en el segundo se usa el comando para settear la variable.
A mi criterio, sería la forma correcta. ¿La primera forma funciona en windows?

Ahora bien, para saber si asignaron la variable correctamente pueden escribir

echo %PATH%

y les debería imprimir el PATH asignado actualmente.

-----*****-----

MUY IMPORTANTE: aségurese de que su instalación está en inglés. No vaya
a ser que en lugar de "Program Files" sea "Archivos de Programas"

-----*****-----

Una última idea.

¿Estás seguro de que el ming32-make está instalado en el directorio
del que están hablando?

De ser así, y sólo para probar, intente ejecutar el ming32-make directamente
con:

"C:\Program Files\Dev-Cpp\mingw32\bin\ming32-make"

No quite las comillas. Si eso no funciona entonces realmente el archivo no
está en ese directorio...

Roberto

Carlos Campos

unread,
Aug 18, 2009, 8:49:23 PM8/18/09
to Programación II (Grupo 01)


Ya pude compilar las librerias del wx, o eso creo pero ahora a la hora
de hacer un proyecto en codeblock y compilarlo me da mas de 50 errores
y todos son algo asi

C:\wxWidgets-2.8.9\include\wx\chkconf.h|188|#error "wxUSE_PROTOCOL
must be defined."|
C:\wxWidgets-2.8.9\include\wx\chkconf.h|246|#error "wxUSE_XML must be
defined."|

Que puede ser???

Roberto Ulloa

unread,
Aug 19, 2009, 1:11:48 PM8/19/09
to ci-12...@googlegroups.com

Javier Alvarado

unread,
Aug 19, 2009, 8:46:07 PM8/19/09
to Programación II (Grupo 01)
http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef
Segui los pasos de ese tutorial, instale el wxPack version 2.8.8 y
funciona de maravilla. Esto para los que los que se quieren ahorrar un
buen tiempo.
Saludos!

On 19 ago, 11:11, Roberto Ulloa <roberto...@gmail.com> wrote:
> Aparentemente no está compilado correctamente:http://forums.codeblocks.org/index.php?topic=5024.0;prev_next=nexthttp://forums.codeblocks.org/index.php?topic=9035.0
>
> Ya le echaron un ojo a este enlace?http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef
>
> 2009/8/18 Carlos Campos <carcam...@gmail.com>

Carlos Campos

unread,
Aug 20, 2009, 1:46:20 AM8/20/09
to ci-12...@googlegroups.com
Profe Pura vida ya lo puede compilar no encontre nada dif a lo que ya habia hecho exepto lo de set path, quien sabe si fue eso... Pero ya pude compilar en programa
Reply all
Reply to author
Forward
0 new messages