Jump to page: 1 2 3
Thread overview
GNU Linux'da D Programlama Dili
Jun 02, 2012
Salih Dinçer
Jun 03, 2012
Salih Dinçer
Jun 03, 2012
Salih Dinçer
Jun 03, 2012
Salih Dinçer
Jun 03, 2012
Salih Dinçer
Jun 04, 2012
zafer
Jun 05, 2012
Salih Dinçer
Jun 05, 2012
zafer
Jun 06, 2012
Salih Dinçer
Jun 06, 2012
zafer
Jun 06, 2012
zafer
Jun 09, 2012
Salih Dinçer
Jun 17, 2012
zafer
Jun 18, 2012
Salih Dinçer
Jun 18, 2012
zafer
June 03, 2012

Merhaba,

Belki bunu, bir Linux konusu olduğu için "Diğer Konular" bölümünde açmalıydım (?); yine de hedef doğrudan Linux üzerinde D programlayabilmek ile ilgili. Amaç ise karşılaştığım sorunları sormak, çözümleri birlikte tartışmak ve A'dan Z'ye tam bir kurulum sağlayabilmek.

Seçtiğim dağıtım gNewSense (release 2009). Sebebi ise GNU2 ve şu an bağlanan (binded)***** GtkD ile en sade dağıtım olması. Elbette daha güncel bir sürüm seçmem tüm sorunları kökünden çözecek ama tüm bağlıları görmek istiyorum. İlk karşılaştığım sorun ise aşağıda alıntıladım...

*** Bir iyi bir haber vereyim:** Gtk-3.x üzerine D bağlayıcısı çalışmaları başlamış...

Alıntı:

>

salih@test-desktop:~$ dmd
dmd: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11' not found (required by dmd)

Sanırım apt-get ile GCC'yi güncellemem sorunu çözecek ama önerileriniz benim için çok önemli. Bu arada sistem bilgileri şöyle:

'salih@test-desktop:~$ cat /proc/version
Linux version 2.6.24-24-generic (root@sandbox) (gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3))
salih@test-desktop:~$ gcc -v
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu
Thread model: posix
'
Teşekkürler...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 03, 2012

Meğer forumda, 2009-2010 yıllarında GtkD ile ilgili şu tartışmalar yapılmış: (eskiye doğru sıralanmış)

Sanırım 2011 yıllarında da yapılmıştır ama henüz araştırmamda o aşamaya gelmedim. Geldiğim tek aşama var ise, yukarıdaki ilk bağlantıda Ali hocamın bahsettiği (ikinci deneme) GNU make ile bağlayıcı kütüphanesini derlemem. Ne varsa GNU'da var zaten...:)

Tabi bu da tek başına bir işe yaramıyor! Çünkü sistem, zlib dahil doğru düzgün lazım olan kütüphanelerden yoksun. Öyle ya glib'de takıldım. Üstelik bazı C kütüphaneleri de eksik. Neyse ki şu an "apt-get instal zlib*" ile Allah ne verdiyse yükleyip :) bir kaç aşama geçtim. Ama glib'i yüklesem bile önümde atk var.

Off bu GTK+ çok kafa karıştırıcı bir şeymiş!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 03, 2012

Teşekkürler,

Aslında localhost(QEMU) üzerinde sanal olarak çalışıyorum. Bazı şeyler sıkıntı yaptığı için Ubuntu 10.10'a terfi ettirdim...:)

Sonuç mu? Sonunda, gerek Gtk+'ı gerekse GtkD'yi kurdum ama nasıl! Kurulması gereken sırasıyla şu paketler vardı:

  • glib
  • atk
  • cairo
  • pango
  • gdk-pixbuf
  • gtk+
  • gtkd

İlk paketi epey bir uğraş ile kurabildim. Meğer zlib ile gettext bağlılarını apt-get ile kurmak yetiyormuş. Sonrasında ise standart şu işlemleri yaptım:

Alıntı:

>

./configure
make
sudo make install

Ancaj atk çok inatçı çıktı ve bir kaç çakışma da baş gösterdi. Ben de bununla uğraşacağıma şu aşağıdaki komutu verdim ve sonraki 4 adımı bir çırpıda geçtim çünkü artık gtk+'ı yukarıdaki gibi kurmama izin veriyordu.

Alıntı:

>

sudo apt-get install cairo-dock-dev

Bu yukarıdaki tam 103 paket kurdu ve içinde bana lazım olanlar vardı. Bilemiyorum, sisteme doğrudan tek apt-get komutu ile gtk+'ı kurabilmeyi başaran var mı? Yine de her zaman ki sözü yazacağım: Bütün bu işlemler Kernel kurmak kadar uzun sürdü. Neyse ki sonunda gtk+'ın demolarını çalıştırmayı ve ekranda bir şeyler görmeyi başarabildim. Şimdi sıra D'de...

Sevgiler, saygılar...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 03, 2012

Çalıştı...:)

'd@d-dili:~/devcd/gtkd/demos/cairo/cairo_clock$ GD=~/devcd/gtkd
d@d-dili:~/devcd/gtkd/demos/cairo/cairo_clock$ dmd clock.d main.d $GD/libgtkd.a -I$GD/src -L-ldl -L-L$GD/src -L-lgtkd
d@d-dili:~/devcd/gtkd/demos/cairo/cairo_clock$ ./clock'
<

http://desmond.imageshack.us/Himg804/scaled.php?server=804&filename=saatt.png&res=landing

>

Ek1: Meğer cairo-dock-dev, yeni adıyla GLX-dock (http://glx-dock.org/) bir tür pencere yöneticisiymiş. İçeriğinde küçük yazılımlar da var ve bayağı havalı görünüyor! Diyebiliriz ki Gtk+'ın eriştiği son nokta; belki de D ile yapabileceklerimizin...:)

Ek2: GLX ismiyle değişmesi OpenGL üzerinden devam ettiğinin bir göstergesi. Yine de bahsettiğim paketi kurarsanız her ikisini de deneme imkanına sahip olabiliyorsunuz. Neyse bunlar konumuz dışı ve ara notlardı...

Ek3: Sıra geldi GDC'ye ve biliyoruz ki Ubuntu'da kısaca sudo apt-get install gdc ile yükleyebiliyoruz. Ama Gtk-D'yi DC=gdc parametresi ile derlememiz gerekiyormuş:

Alıntı:

>

make DC=gdc
sudo make install

Ancak GDC ile kütüphane dosyası oluşsa da Loader.d'de takılıyor. Ayrıca make sırasında DateTime.d dosyasında da sorun yapıyor. Özetle C kütüphaneleri tastamam olan güncel bir dağıtım ve DMD ile yola devam...:)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 03, 2012

Ne diyeyim... kolay gelsin. :( Umarım fazla uyumsuz paketler sistemi daha da kötü duruma düşürmezler.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 04, 2012

Bugün küçük bir şey denedim: GtkD'nin src dizini içindeki derlenmemiş D dosyalarını, olduğu gibi Phobos kütüphanesinin olduğu yere kopyaladım. Sonuç olarak GUI'li projeler başka bir şeye ihtiyaç duymadan derlendi.

Alıntı:

>

dmd deneme -L-ldl -L-gtkd
Sadece yukarıdaki şekilde parametre kullandım. Bu durumda insan düşünüyor; bu kadar configure ve make yapmaya ne gerek vardı...:)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 04, 2012

Alıntı (Salih Dinçer):

>

Bu durumda insan düşünüyor; bu kadar configure ve make yapmaya ne gerek vardı...:)

Düzen önemli olabilir mi? Doğrusu kodlarımı ve dosyalarımı elimden geldiğince düzenli oluşturmaya çalışırım. GtkD dosyalarının gtkD dizininde phobos dosyalarının phobos dizininde olmasını isterim. Bunun iyi bir düzenleme sistemi olduğunu düşünüyorum.

Diğer taraftan gtkD isimli bir dizin içinde doğal olarak gtkD dosyalarını görmeyi düşünürken, phobos dizinindede gtkD dosyası görmeyi beklemem.

Kısacası düzen bizden sonra bu yapıyı inceleyen kişiler için hayati öneme sahip bir rehberdir. Bir süredir monodevelop projesini inceliyorum. Oradaki klasör düzeni hoşuma gitti. Bende bu konuyu burada açmayı düşünüyordum. Yani kod geliştirme esnasında kaynak kod ve dizin organizasyonu konusunu, sen vesile oldun Salih :)
Bu konuda bir standart var mı?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 05, 2012

Haklısın, yeri neresiyse orada bulunmalı. Aslında orada çalışmasının DMD'nin config dosyasında gösterilmeleri. Benim sormak istediğim .a uzantılı paketlenmiş kütüphane dosyasına ihtiyaç duymaması.

İşin daha da ilginç tarafi /usr/lib64 bağının gösterdiği Phobos kütüphanesi ile dmd derleyici dosyasını değiştermekle sürüm güncellemem. Yani std dizini içindeki D dosyalarına sanki hiç ihtiyaç duymuyor.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 05, 2012

Alıntı (Salih Dinçer):

>

İşin daha da ilginç tarafi /usr/lib64 bağının gösterdiği Phobos kütüphanesi ile dmd derleyici dosyasını değiştermekle sürüm güncellemem. Yani std dizini içindeki D dosyalarına sanki hiç ihtiyaç duymuyor.

Ben anlamadım!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 06, 2012

Alıntı (Salih Dinçer:1338891120):

>

Yani std dizini içindeki D dosyalarına sanki hiç ihtiyaç duymuyor.

Onları yalnızca derleme aşamasında kullanıyor. (İsimler doğru mu, kullanımları geçerli mi, vs. diye.)

Bağlayıcı aşamasında ise daha önceden derlenmiş olan kütüphane dosyası bağlanıyor.

Öyle olmasaydı bütün modülleri de derleme satırına yazmamız gerekirdi:

'$ dmd deneme.d /her/nerede/ise/phobos/std/stdio.d ... -L-lyine_de_gereken_D_runtime_kütüphanesi'

Tabii onun çalışması için hangi modülleri teker teker seçeceğimiz çok zor olurdu çünkü program std.stdio'nun kullandığı modüllere de ihtiyaç duyar.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

« First   ‹ Prev
1 2 3