# GTK+ - Bloqué à HelloWorld

**URL:** <https://www.debian-fr.org/t/gtk-bloque-a-helloworld/76918>\
**Category:** Programmation\
**Tags:** gtk\
**Created:** [Juin 7, 2018, 4:29 UTC](https://www.debian-fr.org/t/gtk-bloque-a-helloworld/76918 "2018-06-07T16:29:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fred74](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/c67d28/32.png) [@Fred74](https://www.debian-fr.org/u/Fred74)\
**Post date:** [Juin 7, 2018, 4:29 UTC](https://www.debian-fr.org/t/gtk-bloque-a-helloworld/76918/1 "2018-06-07T16:29:19Z")

</div>

Bonsoir à tous,  
je viens d’entamer Foundations of GTK+ Development de Andrew Krause, je viens seulement de passer hello world 1, après il en fait un autre mais cette fois avec un label en plus dans la fenêtre avec Hello world d’affiché tout simplement.  
Voici le code :

```
#include <gtk/gtk.h>

static void destroy (GtkWidget*, gpointer);
static gboolean delete_event (GtkWidget*, GdkEvent*, gpointer);

int main (int argc,
char *argv[])
{
GtkWidget *window, *label;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Hello World!");
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
gtk_widget_set_size_request (window, 200, 100);

/* Connect the main window to the destroy and delete-event signals. */
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (destroy), NULL);
g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (delete_event), NULL);

/* Create a new GtkLabel widget that is selectable. */
label = gtk_label_new ("Hello World");
gtk_label_set_selectable (GTK_LABEL (label), TRUE);

/* Add the label as a child widget of the window. */
gtk_container_add (GTK_CONTAINER (window), label);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}

```

L’intellisense (désolé si on ne n’utilise pas ce mot, mais je viens de .NET) m’a bien proposer les fonctions et autre que je saisissais, donc logiquement j’ai toutes les bibliothèques, mais le compilateur me revois une erreur sur ces deux lignes :

```
/* Connect the main window to the destroy and delete-event signals. */
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (destroy), NULL);
g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (delete_event), NULL);

```

> Build messages :  
> warning : ‘destroy’ used but never defined  
> warning : ‘delete\_event’ used but never defined  
> undefined reference to ‘destroy’  
> undefined reference to ‘delete\_event’  
> error : ld returned 1 exit status
> 
> Build log :  
> main.c:(.text.startup+0x88): undefined reference to `destroy' main.c:(.text.startup+0xb3): undefined reference to `delete\_event’  
> collect2: error: ld returned 1 exit status  
> Process terminated with status 1 (0 minute(s), 1 second(s))  
> 3 error(s), 2 warning(s) (0 minute(s), 1 second(s))

Si quelqu’un à une idée ?? j)apprends et je n’ai pas encore de réflexe…. Vous imaginez bloqué à HelloWorld….

---

<div class="post-metadata">

**Author:** ![Fred74](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/c67d28/32.png) [@Fred74](https://www.debian-fr.org/u/Fred74)\
**Post date:** [Juin 7, 2018, 4:59 UTC](https://www.debian-fr.org/t/gtk-bloque-a-helloworld/76918/2 "2018-06-07T16:59:29Z")

</div>

bien sur il y’avais ce code également :

```
/* Stop the GTK+ main loop function when the window is destroyed. */
static void
destroy (GtkWidget *window,
gpointer data)
{
gtk_main_quit ();
}
/* Return FALSE to destroy the widget. By returning TRUE, you can cancel
* a delete-event. This can be used to confirm quitting the application. */
static gboolean
delete_event (GtkWidget *window,
GdkEvent *event,
gpointer data)
{
return FALSE;
} 

```

Désolé, la fatigue…

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Juin 8, 2018, 4:36 UTC](https://www.debian-fr.org/t/gtk-bloque-a-helloworld/76918/3 "2018-06-08T04:36:03Z")

</div>

Bonjour

[Hors sujet]

> [@Fred74](#):
>
> …  
> Désolé, la fatigue…

> [@Alphonse Allais](#):
>
> Quand on ne travaillera plus le lendemain des jours de repos, la fatigue sera vaincue.

[/Hors sujet]
