Thread overview
Divid linux sürümü hakkında
May 08, 2012
zafer
May 09, 2012
zafer
May 09, 2012
zafer
May 09, 2012
zafer
May 10, 2012
zafer
May 09, 2012

Merhaba,

Nihayet Divid'i linux ortamında deneme imkanı buldum. Biraz uğraştırsada sonunda Debian 6 üzerinde kaynak kodları derleyip çalıştırmayı başardım ama bu sefer karşıma şöyle bir sorun çıktı.

Örneğin windowsta tanımladığım "resim/logo.png" gibi tanımlar linuxda karşılık bulamadı. Bunun gibi window sortamında dosya yolundan dosya adını elde eden metotum linux için çalışmadı.

Divid'i her iki platfomda geliştiriken sıkıntı yaşamamak için nasıl bir yol izlemeliyim. Yoksa linux ve windows diye iki ayrı kod kalsörü oluşturup kodları ayrı ayrı geliştirmek daha mı iyi olur?

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

May 09, 2012

Alıntı (acehreli):

>

Ben sorunu anlamadım. Sorunu küçük bir programla gösterir misin. Yoksa sorun github'daki son halinde de var mı? Linux'ta denersek hatayı görecek miyiz?

Şöyle anlatmaya çalışayım. Örneğin programa logo resmini yüklemek için şöyle bir kod yazılıyor.

..
this.setIconFromFile("D:\\Divid\\resim\\logo.png");
..

Tabi bu sabit yol yerine programın taşındığı heryerde çalışabilmesi için kod şu hale getiriliyor.

..
this.setIconFromFile("resim\\logo.png");
..

Ancak bu yol tanımı linux ortamında geçerli değil, linuxda bu şöyle görünüyor

..
this.setIconFromFile("/home/zafer/Divid/resim/logo.png");
..

Bunun gibi bir diğer sorun yollarla ilgli bir metotda ortaya çıktı. O metotda ben windows ortamında son "" işaretinden faydalanarak dosya adını elde ediyordum ama linux ortamında çalışmadı tabi :)

Bunlar şimdilik ortaya çıkanlar sanırım ileride daha farklı sorunlarda olaraktır. Bu sebeple benim sormak istediğim acaba iki ayrı kod klasörümü oluştursam yoksa D'nin version özelliğinden mi faydalansam daha iyi olur? Bu konuda siz ne dersiniz diye sormuştum.

Kod yapısını netleştiremediğim için github deposuna bir aktarım yapmadım. Yani kodları şu an için göremezsiniz, ama en kısa zamanda yüklemek niyetindeyim. Bu arada sana danışacak çok şey var Ali, daha öncesinde kodlar windowsda olduğu için sana çok ısrar edemiyordum ama artık mazeret kalmadı :)

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

May 09, 2012

Alıntı (acehreli):

>

version blokları daha mantıklı geliyor ama bunları ayrı bir yerde tutmaya

Ayrı yer derken ayrı bir dosya mı demek istiyorsun Ali?

Ali doğrusu version bloklarının ileride sorun çıkarmayacağına emin olamıyorum ama başka bir tecrübemde olmadığı için sanırım bir deneme yapmak en doğrusu olacak.

std.path gerçekten güzelmiş, teşekkürler. Biz bodoslama programa dalınca böyle kolaylıkları araştırmayı ihmal ettik, bu modülde işime yarayacak güzel metodlar var.

Bu arada unutmadan Makefile dosyasını nasıl düzenleyebilirim. Linux ve Windows için tanımları faklı, bunun için nasıl bir çözüm var?

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

May 09, 2012

Alıntı (zafer):

>

windowsta tanımladığım "resim/logo.png" gibi tanımlar linuxda karşılık bulamadı

Ben sorunu anlamadım. Sorunu küçük bir programla gösterir misin. Yoksa sorun github'daki son halinde de var mı? Linux'ta denersek hatayı görecek miyiz?

Ali

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

May 09, 2012

version blokları daha mantıklı geliyor ama bunları ayrı bir yerde tutmaya ve içeriğini küçük tutmaya çalış. Örneğin yalnızca bu dosya ismini içersinler:

   version (Windows)
   {
       enum dosyaİsmi = "bir şey";
   }

   version (Linux)
   {
       enum dosyaİsmi = "başka bir şey";
   }

Ayrıca sanırım std.path modülünde işine yarayacak şeyler var. (Ben hiç kullanmadım.)

Ali

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

May 09, 2012

Alıntı (zafer):

>

Ayrı yer derken ayrı bir dosya mı demek istiyorsun Ali?

Ayrı dosya da olur. Asıl söylemek istediğim, version'lar asıl kodun arasına fazla girince okumayı güçleştiriyorlar. Onun için değişkenleri ayrı bir yerde farklı olarak tanımlayınca kodda değişiklik gerekmemiş oluyor:

// Hem Windows hem Linux için:
this.setIconFromFile(dosyaİsmi);

Alıntı:

>

Makefile dosyasını nasıl düzenleyebilirim. Linux ve Windows için tanımları faklı, bunun için nasıl bir çözüm var?

Ben fazla uğraşmak zorunda kalmadım. Bir çözüm, Windows altında Cygwin gibi bir ortam kullanmak ama o da projeye bağımlılık getiriyor tabii. :-/ "platform-independent makefile" diye aratmak işe yarayabilir. (Hazırda cevabım yok. :))

Ali

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

May 10, 2012

Alıntı (acehreli):

>

Onun için değişkenleri ayrı bir yerde farklı olarak tanımlayınca kodda değişiklik gerekmemiş oluyor:

Bende o şekilde yaptım, seninde belirttiğin gibi version blokları kodun içine girince karışıyor. Bende Phobos dosyalarına biraz baktım ve onlar gibi kodun en başında bu tanımları yapmaya karar verdim. Ancak ileride bu sistemi metodlara uygulamak gerekirse nasıl olacak bilemiyorum :)

Alıntı:

>

"platform-independent makefile" diye aratmak işe yarayabilir. (Hazırda cevabım yok. :))

Bu cevap bile çok işime yarayacak, umarım bir yolunu bulabilirim, hiç olmazsa Makefile_win ve Makefile_lin isimli iki dosya ile sorunu çözmeyi düşünüyorum.

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

May 10, 2012

Aslında bazı bilgiler buldum ama hem üzerinde çok zaman harcamak istemediğim için, hemde makefle hakkında çok geniş bilgim olmadığı için makefile.win ve makefile.lin şeklinde iki dosya hazırlayıp yerine göre bunları kullanmaya karar verdim.

Kodların linux (Debian6) üzerinde çalışması için yapılan değişiklikler ve kodun son halini github deposuna yükledim. Dileyen kodu indirip linux ortamında "make -f makefile.lin" komutuyla derleyip projeyi inceleyebilir.

Projenin çalışması için bilgisayarda dmd2.059 ve gtkd'nin kurulu olması gerekmektedir. İlgilenenlere duyurulur :)

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