GTK+ kurulumu ve compile etme

Başlatan garippe, 15 Temmuz 2008 - 01:57:25

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

garippe

Merhaba arkadaşlar, ben gtk+'a yeni başladım, gtk'nin sitesinden paketleri indirip kurdum ancak bir turlu compile edemedim... Internette de pek kaynak bulamadım :( ... yardımlarınızı bekliyorum...

heartsmagic

GTK'nın sitesinden bir şey indirmene gerek yoktu, depolardan geliştirme paketlerini kurabilirsin. Ayrıca ne derlemeye çalıştın sen? GTK ve C mi çalışıyorsun? Eğer öyleyse bir de build-essential paketine ihtiyacın var.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

garippe

c yi biliyorum gtk ogrenmeye calışıyorum. Gtk ile  basit bi pencere oluşturmaya çalıştım. Ancak .c uzantılı dosyayı compile edemedim, gtk.h kutuphanesini bulamıyor. synaptic ten geliştirme paketlerini kurdum, ancak sonuc alamadım:(  yine aynı hataları veriyo..
bi de build essential i paketini nasıl yukleyecegimi bilmiyormm?? yardımcı olursanız sevinirm..
teşekkrler..

ufuk_k

Hepsini synapticten yükleyebilirsin.

build-essential
g++
libgtk2.0-dev


diye aratıp tek tek bulup kurarsın. Faydalı bağlantılar:

http://www.gtk.org/tutorial/
http://www.gnome.org/~newren/tutorials/developing-with-gnome/
http://developer.gnome.org/doc/

garippe

dediginiz adımları tek tek uyguladım,synapticten paketleri aratıp  hepsini kurdum ama yine compile edemedim. acaba compile kodumda mı bi hata var??
program kodu:

#include <gtk.h>

int main( int argc, char *argv[] )
{
        GtkWidget *window;

        gtk_init (&argc, &argv );

        window = gtk_window_new (GTK_WINDOW_TOPLEVEL );
        gtk_widget_show (window );

gtk_main ( );

return 0 ;
}

hata mesajları:

garippe@garippe-laptop:~$ gcc -o merhaba merhaba.c `gtk-config –cflags –libs`
Usage: gtk-config [OPTIONS] [liBRARIES]
Options:
   [--prefix[=DIR]]
   [--exec-prefix[=DIR]]
   [--version]
   [--libs]
   [--cflags]
Libraries:
   gtk
   gthread
merhaba.c:1:17: hata: gtk.h: No such file or directory
merhaba.c: 'main' işlevinde:
merhaba.c:5: hata: 'GtkWidget' bildirilmemiş (bu işlevde ilk kullanımı)
merhaba.c:5: hata: (Bildirilmemiş her betimleyici görüldüğü her işlev
merhaba.c:5: hata: için sadece bir kez raporlanır.)
merhaba.c:5: hata: 'window' bildirilmemiş (bu işlevde ilk kullanımı)
merhaba.c:9: hata: 'GTK_WINDOW_TOPLEVEL' bildirilmemiş (bu işlevde ilk kullanımı)


thekazma

Bir de şunu deneyin:

gcc -Wall -g merhaba.c -o merhaba `pkg-config --cflags gtk+-2.0` \
    `pkg-config --libs gtk+-2.0`

hckr

IDE'nde Project Properties-->C Compiler->Addinational Options'a aşağıdaki satırı koy ve sonra dene
`pkg-config --cflags --libs gtk+-2.0`

Ozmo

eğer gtk ile ugraşacaksan gnome kütüphaneleri elinde olacak

sudo apt-get install gnome-devel

basit bir örnek

helloworld.c


#include <gtk/gtk.h>

/* This is a callback function. The data arguments are ignored
* in this example. More on callbacks below. */
static void hello( GtkWidget *widget,
                   gpointer   data )
{
    g_print ("Hello World\n");
}

static gboolean delete_event( GtkWidget *widget,
                              GdkEvent  *event,
                              gpointer   data )
{
    /* If you return FALSE in the "delete-event" signal handler,
     * GTK will emit the "destroy" signal. Returning TRUE means
     * you don't want the window to be destroyed.
     * This is useful for popping up 'are you sure you want to quit?'
     * type dialogs. */

    g_print ("delete event occurred\n");

    /* Change TRUE to FALSE and the main window will be destroyed with
     * a "delete-event". */

    return TRUE;
}

/* Another callback */
static void destroy( GtkWidget *widget,
                     gpointer   data )
{
    gtk_main_quit ();
}

int main( int   argc,
          char *argv[] )
{
    /* GtkWidget is the storage type for widgets */
    GtkWidget *window;
    GtkWidget *button;
   
    /* This is called in all GTK applications. Arguments are parsed
     * from the command line and are returned to the application. */
    gtk_init (&argc, &argv);
   
    /* create a new window */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   
    /* When the window is given the "delete-event" signal (this is given
     * by the window manager, usually by the "close" option, or on the
     * titlebar), we ask it to call the delete_event () function
     * as defined above. The data passed to the callback
     * function is NULL and is ignored in the callback function. */
    g_signal_connect (window, "delete-event",
      G_CALLBACK (delete_event), NULL);
   
    /* Here we connect the "destroy" event to a signal handler. 
     * This event occurs when we call gtk_widget_destroy() on the window,
     * or if we return FALSE in the "delete-event" callback. */
    g_signal_connect (window, "destroy",
      G_CALLBACK (destroy), NULL);
   
    /* Sets the border width of the window. */
    gtk_container_set_border_width (GTK_CONTAINER (window), 10);
   
    /* Creates a new button with the label "Hello World". */
    button = gtk_button_new_with_label ("Hello World");
   
    /* When the button receives the "clicked" signal, it will call the
     * function hello() passing it NULL as its argument.  The hello()
     * function is defined above. */
    g_signal_connect (button, "clicked",
      G_CALLBACK (hello), NULL);
   
    /* This will cause the window to be destroyed by calling
     * gtk_widget_destroy(window) when "clicked".  Again, the destroy
     * signal could come from here, or the window manager. */
    g_signal_connect_swapped (button, "clicked",
      G_CALLBACK (gtk_widget_destroy),
                              window);
   
    /* This packs the button into the window (a gtk container). */
    gtk_container_add (GTK_CONTAINER (window), button);
   
    /* The final step is to display this newly created widget. */
    gtk_widget_show (button);
   
    /* and the window */
    gtk_widget_show (window);
   
    /* All GTK applications must have a gtk_main(). Control ends here
     * and waits for an event to occur (like a key press or
     * mouse event). */
    gtk_main ();
   
    return 0;
}


gcc -Wall -g helloworld.c -o helloworld `pkg-config --cflags gtk+-2.0` \

`pkg-config --libs gtk+-2.0`


http://library.gnome.org/devel/gtk-tutorial/stable/

sitesinden alıntıdır

sem

Sorun devam ediyor mu emin olamadım aslında fakat ne olur ne olmaz diye;

http://forum.ubuntu-tr.net/index.php/topic,22230.0.html
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?