OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
¿como compilo un programa gtk?
hola, pues yo copie a mano lo que venia en la documentación en español de gnome es un programa según básico y puse esto en el gedit
#include
void hello ( GtkWidget *Widget, gpointer data)
{
g_print ("Hola Mundo");
}
gint delete_event(GtkWidget *Widget,
GdkEvent *event,
gpointer data)
{
g_print ("delete event occurred\n");
return TRUE;
}
void destroy (GtkWidget *Widget, gpointer data)
{
gtk_main_quit ();
}
int main(int argc, char *argv[])
{
GtkWidget *Window;
GtkWidget *button;
gtk_init (&argc, &argv);
Window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (G_OBJECT (Window), "delete_event",
G_CALLBACK (delete_event), NULL);
g_signal_connect (G_OBJECT (Window), "destroy",
G_CALLBACK (destroy), NULL);
gtk_contaimer_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hola Mundo");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (gtk_widget_destry),
G_OBJECT (window));
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk widget show (window);
gtk_main ();
return 0;
}
creo que lo escribi mal por que me aparece el siguiente error cuando lo trato de compilar con gcc
/home/aron/Documentos/programas/programa.c:1:21: error: gtk/gtk.h: No existe el fichero o el directorio
/home/aron/Documentos/programas/programa.c:3: error: expected ‘)’ before ‘*’ token
/home/aron/Documentos/programas/programa.c:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘delete_event’
/home/aron/Documentos/programas/programa.c:20: error: expected ‘)’ before ‘*’ token
/home/aron/Documentos/programas/programa.c: En la función ‘main’:
/home/aron/Documentos/programas/programa.c:27: error: ‘GtkWidget’ no se declaró aquí (primer uso en esta función)
/home/aron/Documentos/programas/programa.c:27: error: (Cada identificador no declarado solamente se reporta una vez
/home/aron/Documentos/programas/programa.c:27: error: para cada funcion en la que aparece.)
/home/aron/Documentos/programas/programa.c:27: error: ‘Window’ no se declaró aquí (primer uso en esta función)
/home/aron/Documentos/programas/programa.c:28: error: ‘button’ no se declaró aquí (primer uso en esta función)
/home/aron/Documentos/programas/programa.c:32: error: ‘GTK_WINDOW_TOPLEVEL’ no se declaró aquí (primer uso en esta función)
/home/aron/Documentos/programas/programa.c:35: error: ‘delete_event’ no se declaró aquí (primer uso en esta función)
/home/aron/Documentos/programas/programa.c:35: error: ‘NULL’ no se declaró aquí (primer uso en esta función)
/home/aron/Documentos/programas/programa.c:38: error: ‘destroy’ no se declaró aquí (primer uso en esta función)
/home/aron/Documentos/programas/programa.c:40: error: ‘window’ no se declaró aquí (primer uso en esta función)
/home/aron/Documentos/programas/programa.c:45: error: ‘gtk_widget_destry’ no se declaró aquí (primer uso en esta función)
/home/aron/Documentos/programas/programa.c:52: error: ‘gtk’ no se declaró aquí (primer uso en esta función)
/home/aron/Documentos/programas/programa.c:52: error: expected ‘;’ before ‘widget’
Que quiere decir eso
Me pueden ayudar yo acabo de empezar en esto y pues no se si me falten programas o archivos o porque no se compila
- Entra a tu cuenta o crea una para poder comentar.
# 96349 Devel
¿Tienes instalados los paquetes -devel de gnome?
Usuario
# 96386 creo que no
pues tengo algunos cuales debo instalar para que funcione
El mejor día de tu vida es hoy.
# 96410 Pues no lo se
Si al menos dijeras cuales tienes instalados.
Usuario
# 96433 Hola mandriman, a ver, te
Hola mandriman, a ver, te sitúo un poco en mi entorno: Tengo Mandriva free 2010, sí, he vuelto a cambiar desde la one; y para programar en gnome he instalado el metapaquete task-c-devel, para programar en c, y un par de ides: Anjuta y geany, usar a gusto, y por último el paqute intltool, por las herramientas de internacionalización. Con ésto podrás programar con gtk para gnome de manera inicial, así que, de momento, olvídate del resto, ojo, te serán necesarios más paquetes posteriormente pero de momento con ésto es suficiente.
Vamos ahora a tu programa, primer error en la primera línea:
#include
Ha de ser:
#include < gtk/gtk.h>
Ello para incluir las librerias necesarias para programar con gtk.
Bien, siguiente error, en la línea 41 tienes un window en vez de un Window, cuidado que c distingue entre mayúsculas y minúsculas. Lo corregimos(tienes varios más, revísalos):
gtk_contaimer_set_border_width (GTK_CONTAINER (Window), 10);
Y tampoco es gtk_contaimer_set_border_width sino gtk_container_set_border
Otro error: En la línea 45 tienes:
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (gtk_widget_destry), G_OBJECT (window));
No es gtk_widget_destry sino gtk_widget_destroy
En la línea 53 tienes:
gtk widget show (Window);
No es así sino gtk_widget_show (Window);
Luego tienes varios g_signal_connect, es gtk_signal_connect
Luego tienes...Oye, que tienes muchos errores en el código y no voy a acabar así que te pongo aquí un programilla típico hola mundo, haces un copypaste y lo compilas a ver cómo te va.
Código hola mundo:
#include < gtk/gtk.h>
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *button;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC ( gtk_main_quit ) , NULL);
gtk_container_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello World");
gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window));
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk_widget_show (window);
gtk_main ();
return 0;
}
Luego lo renombras el archivo como hola.c y lo compilas desde un terminal así:
cc `pkg-config --cflags --libs gtk+-2.0` hola.c -o hola
Te creará un archivo llamado hola.o el cual ejecutas así:
./hola.o
Bueno...
Saludos.
Web de FichasDrake
Otra de mis web
Saludos.
Mi blog
Mis programas en code.google
Mi programa Gursync
Usuario
# 96594 ya se cual es el problema
de pura curiosidad estuve buscando la carpeta include y los archivos gtk.h gdk.h y stdio.h los encontre en diferentes lugares movi los archivos gtk.h y gdk.h y marco mas errores entonces creo que ay que cambiar algo de #include por otra cosa ya le e movido pero nada y como soy un completo ignorante en programacion no se como ponerle para que en vez de que busque gtk.h en /usr/include/ lo busque en /usr/include/gtk-2.0
Saludos
El mejor día de tu vida es hoy.
Usuario
# 96598 ya me desespere
¡¡¡¡QUE PUTAS ES LO QUE PASAAA!!!!
Ya no se que hacer esa cosa del cc `pkg-config --cflags --libs gtk+-2.0` hola.c -o hola no se porque no funciona sique marcando que no existe gtk.h
!!!!QUE PASA!!!!
llevo todo el dia en esto y nada
El mejor día de tu vida es hoy.