Gtk & CodeBlocks undefined reference hatası

Gtk & CodeBlocks undefined reference hatası

Mesajgönderen lazio » 18 Mar 2007, 20:27

slm, Ubuntu üstünde CodeBlocks ide si ile basit bir uygulama geliştirmeye çalışıyorum..

/usr/include/gtk-2.0/
/usr/include/cairo/
/usr/include/glib-2.0/
/usr/include/pango-1.0/
/usr/lib/glib-2.0/include/
/usr/lib/gtk-2.0/include/
/usr/include/atk-1.0/

Yukarıdaki path leri Project build options da Search Directory iye yazmama rağmen derleme aşamasında aşağıdaki hataları alıyorum.

:: === cb1, Debug ===
/root/Projects/cb1/test1.c:12: undefined reference to `gtk_init'
/root/Projects/cb1/test1.c:14: undefined reference to `gtk_window_new'
/root/Projects/cb1/test1.c:16: undefined reference to `g_type_check_instance_cast'
/root/Projects/cb1/test1.c:16: undefined reference to `g_signal_connect_data'
/root/Projects/cb1/test1.c:18: undefined reference to `gtk_widget_show'
/root/Projects/cb1/test1.c:20: undefined reference to `gtk_main'
/root/Projects/cb1/test1.c:28: undefined reference to `gtk_main_quit'
:: === Build finished: 7 errors, 0 warnings ===


Sanırım bir yada birkaç library yi LinkLibrary ye eklemem gerekiyor ama hangileri ?? 8O
Kolay gelsin.
Kullanıcı avatarı
lazio
Üye
Üye
 
Mesajlar: 12
Kayıt: 21 Nis 2005, 00:00

Mesajgönderen KUMRAL-LİNUX » 18 Mar 2007, 20:31

valla verilen mesajda
undefined reference to `g_type_check_instance_cast'


tanımlanmamış yönlendirme yazıyor.
sanırım burda bu kütüphaneler bulunmamış değil yanlış bir şekilde parametre tanımlaması var galiba.
yada öyle bişy.
"serbest piyasanın windowsuna karşı " "Sosyalizmin kollektif GNU/Linux'undan yanayım " Haydi saflara.

http://freedrive.com/folder/133964 Linux Depom.
bir sürü ıvır zıvır.
Kullanıcı avatarı
KUMRAL-LİNUX
Forum Gurusu
Forum Gurusu
 
Mesajlar: 1350
Kayıt: 28 Eyl 2005, 00:00
Konum: /dev/proc:pid:devrim

Mesajgönderen lazio » 18 Mar 2007, 20:46

KUMRAL-LİNUX yazdı: yanlış bir şekilde parametre tanımlaması var galiba.


bu ne demek tam olarak :roll:
search path e eklediğim path ler den sonra herhangi bir header a kızmıyor şuan. ama header ların içinde bu fonksiyonları bulamıyor, ben manuel olarak baktım bu fonksiyonlar header larda mevcut :)
Kullanıcı avatarı
lazio
Üye
Üye
 
Mesajlar: 12
Kayıt: 21 Nis 2005, 00:00

Mesajgönderen kieroglu » 19 Mar 2007, 03:57

Konsolda yaptigin derlemenin ciktisini verebilir misin? Gtk kutuphanelerini bulamiyor gibi.
Kullanıcı avatarı
kieroglu
Forum Gurusu
Forum Gurusu
 
Mesajlar: 2301
Kayıt: 13 Mar 2002, 01:00
Konum: Seattle, WA

Mesajgönderen bluekid » 19 Mar 2007, 12:55

Project -> Build options -> Linker settings kısmında kullanacağı kütüphaneleri belirttin mi ?
anladığım kadarıyla belirtmemişsin.
Kullanıcı avatarı
bluekid
Üye
Üye
 
Mesajlar: 33
Kayıt: 19 May 2005, 00:00

Mesajgönderen lazio » 19 Mar 2007, 21:57

bluekid yazdı:Project -> Build options -> Linker settings kısmında kullanacağı kütüphaneleri belirttin mi ?
anladığım kadarıyla belirtmemişsin.


Hayır belirtmedim, çünkü hangi kütüphaneleri belirteceğimi bilmiyorum..
/usr/lib/gtk-2.0 altında,
2.10.0, includes ve modules isimli klasörler var ve içlerinde bazı *.so dosyaları var ancak hangilerini kullanacağımı bilmiyorum..

Hatta şuan /usr/lib/gtk-2.0/2.10.0/engines/libglide.so kütüphanesini ekledim, derlemeyi sorunsuz yaptı fakat bu seferde çalıştırdığımda terminalden

error while loading shared libraries : libglide.so : cannot open shared object file : No such file or directory
hatası alıyorum..
Path ini belirttiğim bir dosyayı nasıl bulamaz, şaka mı yapıyor acaba :D
Kullanıcı avatarı
lazio
Üye
Üye
 
Mesajlar: 12
Kayıt: 21 Nis 2005, 00:00

Mesajgönderen lazio » 19 Mar 2007, 22:03

kieroglu yazdı:Konsolda yaptigin derlemenin ciktisini verebilir misin? Gtk kutuphanelerini bulamiyor gibi.


Kod: Tümünü seç
gcc -c test1.c -I/usr/include/gtk-2.0 -I/usr/include/cairo/ -I/usr/include/glib-2.0/ -I/usr/include/pango-1.0/ -I/usr/lib/glib-2.0/include/ -I/usr/lib/gtk-2.0/include/ -I/usr/include/atk-1.0/

şeklinde derlediğimde hiç bir hata vermeden tekrar komut satırına düşüyor..
Kullanıcı avatarı
lazio
Üye
Üye
 
Mesajlar: 12
Kayıt: 21 Nis 2005, 00:00

Mesajgönderen kieroglu » 20 Mar 2007, 04:36

engines altindaki kutuphaneleri derlerken kullanmana gerek olmamali. Gtk calisirken onlari kendi bulabilmeli zaten. Gtk kurulumunda sorun olmasin -- Gtk'yi kendin mi kurdun?
Kullanıcı avatarı
kieroglu
Forum Gurusu
Forum Gurusu
 
Mesajlar: 2301
Kayıt: 13 Mar 2002, 01:00
Konum: Seattle, WA

Mesajgönderen lazio » 20 Mar 2007, 10:57

Kendim derken Synaptic ile kurdum yanlış hatırlamıyorsam.
Kullanıcı avatarı
lazio
Üye
Üye
 
Mesajlar: 12
Kayıt: 21 Nis 2005, 00:00

Mesajgönderen bluekid » 20 Mar 2007, 11:59

Ben GTK kullanmıyorum ama şu yazı işine yaraya bilir
GTK programlarını derlemek için gcc komutuna GTK kütüphanelerinin isimlerini ve yerlerini belirtmek gerekir. Bunun için gtk-config komutu kullanılır.
# gtk-config --cflags --libs

bu komutun çıktısı (sistemden sisteme farklılıklar gösterebilir):
-I/opt/gnome/include/gtk-1.2 -I/opt/gnome/include/glib-1.2 -I/opt/gnome/lib/glib /include -I/usr/X11R6/include -L/opt/gnome/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -l Xext -lX11 -lm

Buradaki parametrelerin açıklamaları şöyledir:
-l library: Belitirtilen yollarda libkütüphane .a şeklinde bir bağlayıcı arar.
-L path: İstenilen kütüphaneyi bu yolda da arar.
-I path: Programda kullanılan başlık dosyalarını arayacağı yolu belitir.

http://www.linuxfocus.org/Turkce/May200 ... e295.shtml
Kullanıcı avatarı
bluekid
Üye
Üye
 
Mesajlar: 33
Kayıt: 19 May 2005, 00:00

Mesajgönderen lazio » 22 Mar 2007, 00:00

/etc/ld.so.conf dosyasına
/usr/lib/gtk-2.0/2.10.0/engines path ini yazarak sorun çözüldü, bende tam olarak anlamadım :roll: ama bu durumda Project -> Build Options da Search Directories leri belirtmek yeterli oldu :)
Kullanıcı avatarı
lazio
Üye
Üye
 
Mesajlar: 12
Kayıt: 21 Nis 2005, 00:00

Mesajgönderen kieroglu » 22 Mar 2007, 02:28

Bende o dizin ld.so.conf'ta degil ama hersey calisiyor. Engines icindeki fonksiyonlari dogrudan kullanman mi gerekiyor programinda?
Kullanıcı avatarı
kieroglu
Forum Gurusu
Forum Gurusu
 
Mesajlar: 2301
Kayıt: 13 Mar 2002, 01:00
Konum: Seattle, WA

Mesajgönderen lazio » 22 Mar 2007, 10:50

Tam olarak emin değilim, Zaten önceki mesajların birinde hangi *.so kütüphanesi eklemem gerektiğini sormuştum. Yaptığım aramalarda GTK nın *.so dosyalarının engines içinde olduğunu gördüm ve o path i ekledim..

Hazır çalıştırmışken artık biraz GTK ile ilgilenmek istiyorum aksi takdirde dana önceki linux geçeişlerimde olduğu gibi sonuç elde etmeden geri dönmek istemiyorum.
Herkese değerli yardımlarından dolayı teşekkürler.
Kullanıcı avatarı
lazio
Üye
Üye
 
Mesajlar: 12
Kayıt: 21 Nis 2005, 00:00


Dön Glade / Anjuta, GTK

Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir