Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/03/2017, à 19:44

turboiii

gcc sur ubuntu 16.10

bonjour à tous
          Je fais mes premiers pas sur ubuntu 16.10  installé enfin .......
          Notez que je travaille depuis plusieurs mois sous ubuntu 14 en C, GTK3 et geany .....

          Evidemment par prudence je procède par étape. J'utilise un  premier code fonctionnel sous ubuntu 14 pour le compiler et le tester

#include <stdlib.h>
#include <gtk/gtk.h>
#include <glib/gprintf.h>
/*  Compile with:
 *  gcc -std=c11 -Wall -fmax-errors=10 -Wextra hello_gtk3_version.c -o hello_gtk3_version `pkg-config --cflags --libs gtk+-3.0`
 */
// hello_gtk3_version.c
    
    
    void hello (GtkWidget *widget, gpointer data)
    {
		//le résultat de cette fonction n'est visible que si l'app est lancée du terminal par ./app
        g_print ("Bonjour tout le monde.\n");
        (void)widget;
        (void)data;
    }
    
    gint on_delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)
    {
        g_print ("le signal delete_event est survenu.\n");
        return TRUE; 
		(void)widget;
		(void)event;
		(void)data;
         
    }
        
    int main (int argc, char *argv[])
    {
        GtkWidget *window;
        GtkWidget *button;
		char Version[30];
    
        gtk_init (&argc, &argv);
        window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 
		g_signal_connect (window, "delete-event", G_CALLBACK (on_delete_event), NULL);
		g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
		gtk_container_set_border_width (GTK_CONTAINER (window), 10);
    
	
		sprintf(Version, "Bonjour Gtk3 Version %d.%d.%d\n", gtk_major_version, gtk_minor_version, gtk_micro_version);

		g_printf("%d.%d.%d\n", gtk_major_version, gtk_minor_version, gtk_micro_version);
	
		button = gtk_button_new_with_label (Version);
		g_signal_connect (button, "clicked", G_CALLBACK (hello), NULL);
        g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);
    
        gtk_container_add (GTK_CONTAINER (window), button);
    
        gtk_widget_show_all (window);
    
        gtk_main ();
        return EXIT_SUCCESS;
    }

ensuite sous geany j'ai mis l'option de construction

gcc -Wall -c "%f" `pkg-config --cflags --libs gtk+-3.0`

le test sous geany fonctionne correctement et j'obtiens la version de gtk  3.20.9
dans le terminal et j'obtiens bien un bouton gtk avec marqué Bonjour Gtk3 Version 3.20.9

en revanche la commande en ligne

gcc -std=c11 -Wall -fmax-errors=10 -Wextra hello_gtk3_version.c -o hello_gtk3_version `pkg-config --cflags --libs gtk+-3.0`

ne fonctionne pas avec un résultat attendu
je n'ai pas d'erreur de compilation mais le fichier compilé et linké n'est pas exécutable à partir de Nautilus   alors qu'en ligne de commande  avec ./hello_gtk3_version sa fonctionne.

Que faut -il faire au niveau nautilus pour que mes programmes compilés fonctionnent ? A savoir que je puisse les lancer directement en mode graphique

Hors ligne