[FAQ] Complément à la Faq Gtk+/Glade/Pourquoi les signaux ne fonctionne pas ?
Bonjour,
Pour que les signaux soient pris en compte avec l'option -export-dynamique comme cela est indiqué dans la Faq, il semble qu'il faille compiler en C.
Dans le cas où l'on compile son projet avec un compilateur C++ (g++) il faut préfixer la méthode appelée par le signal en utilisant : extern "C"
Un exemple :
Code:
1 2 3 4 5
|
extern "C" void on_destroy_window(GtkObject *object, gpointer user_data)
{
gtk_main_quit();
} |
Par ailleurs, pour ceux qui utilisent automake pour compiler je conseillerai d'ajouter une directive LDFLAGS = -export-dynamic pour que les signaux soient bien pris en compte. En effet, -wl, --export-dynamic serait plutôt à utiliser dans le cas de compilation directe via gcc par exemple.