Jump to page: 1 24  
Page
Thread overview
Proje Yöneticisi
Jun 18, 2010
Racih
Jun 18, 2010
Racih
Jun 18, 2010
Racih
Jun 18, 2010
Racih
Jun 19, 2010
Racih
Jun 19, 2010
Racih
Jun 19, 2010
Racih
Jun 21, 2010
Racih
Jun 21, 2010
Racih
Jun 25, 2010
Racih
Jun 25, 2010
Racih
Jun 25, 2010
Mengu
Dec 09, 2010
Racih
Dec 10, 2010
Kadir Can
Dec 10, 2010
Racih
Dec 11, 2010
Kadir Can
Jan 20, 2011
Ali
Jan 21, 2011
Ali
Apr 08, 2011
Racih
Apr 09, 2011
Mengu
Jun 18, 2010
levent2z
June 18, 2010

Merhaba,

Code::Block üzerinden proje geliştirmeye çalıştım fakat ayarlarını bir türlü yapamadım. Bende metin editörü üzerinden yazmaya devam ediyorum. İşte burda sorun beliriyor. O anki veriyi kaydetip, derleyip, çalıştırmak zor geliyor. Bunun yerine D dilini kullanarak bir proje yönetici yapmayı düşünüyorum. Şuan ufak ufak denemelere başladım. Şuanki kod durumu;

Düzeltme: Hataları düzelterek ekliyorum.
Düzeltme 2 : Şuan dosya derleyip çalıştırabiliyor. :)

import std.stream;
import std.cstream;
import std.array;
import std.file;
import std.process;
import std.string;

string parametre;

void main(string[] args){
 /*
 * Örnek kullanım : derle -a -w -d deneme.d
 * -a = Argümanlar. Kullanımı -a -w -p derle
 * -Y = Yeni proje oluşturur. Kullanımı -Y derle
 * -Yd = Yeni Dosya oluşturur. Kullanımı -Yd dcurses.d
 */
 parametre ~="dmd";
switch (args[1]) {
  case "-a":
    Derle(args);
    break;
  case "-Y":
    ProjeOluştur(args[2]);
    break;
  case "-Yd":
    DosyaOluştur(args[2],args[3]);
    break;

   default:
       dout.writefln("-a = Argümanlar. Kullanımı:derle -a -w -L... -p proje");
	dout.writefln("-Y = Yeni proje oluşturur. Kullanımı:derle -Y proje");
	dout.writefln("-Yd = Yeni Dosya oluşturur. Kullanımı: derle -Yd proje.d");
   }
}

void Derle(string[] args){
 /*
 * -p = Projeyi derler. Kullanımı : derle -a -w -p proje
 * -d = Dosyayı derler. Kullanımı : derle -a -w -d proje.d
 */

   for(int k=0;k<args.length; k++){
	 if(args[k]=="-p"){
	   for(int i = 2;i<k;i++){
	    parametre~=" "~args[i];
	    }
	    ProjeDerle(args[k+1]);
	  }else if(args[k]=="-d"){
	    for(int i = 2;i<k;i++){
	    parametre~=" "~args[i];
	    }
	     DosyaDerle(args[k+1]);
	  }
 }
}

void ProjeDerle(string pAdi){
 if(exists(pAdi)){
   dout.writefln(pAdi~" adlı dizin var");
 }else{
   dout.writefln(pAdi~" adlı dizin yok");
 }
}

void ProjeOluştur(string pAdi){
 string projeDizini = getcwd()~"/"~pAdi;
 mkdir(projeDizini);
 File dosya = new File(projeDizini~"/main.d",FileMode.OutNew);
 dosya.writefln("import std.stdio;");
 dosya.writefln("void main(){");
 dosya.writefln(" writefln('Merhaba');");
 dosya.writefln("}");
 File index = new File(projeDizini~"/index.txt",FileMode.OutNew);
 index.writefln("argümanlar: ");
 index.writefln("derle: main.d");
}

void DosyaDerle(string dAdi){
 parametre~=" "~dAdi;
 system(parametre);
 string çalıştır = replace(dAdi,".d","");
 system("./"~çalıştır);
}
void DosyaOluştur(string dAdi,string pAdi){
 string projeDizini = getcwd()~"/"~pAdi;
 File dosya = new File(projeDizini~"/"~dAdi,FileMode.OutNew);
 dosya.writefln("class "~dAdi~"{");
 dosya.writefln("}");
 File index = new File(projeDizini~"/"~"index.txt",FileMode.Append);
 index.writefln("sınıf: "~dAdi);
}

derle.d ye parametre gönderek hem derleyip hemde uygulamayı çalıştıracak.

Çalışma mantığı şu şekil olacak;

  1. Proje yaratmak için derle -Y projeAdı
    1-1) projeAdı dğerindeki dizini oluşturak içerisine index.txt dosyasını yazacak.
    1-2) Yeni ana dosya yaratmak için derle -Yad dosya projeAdı
    1-3) projeAdı değerindeki dizine ait index.txt e belirtilen dosyayı ekleyecek.
    1-4) Yeni dosya yaratmak için derle -Yd dosya projeAdı
    1-5) projeAdı değerindeki dizinin içerisine dosyayı oluşturacak.
  2. Proje derlemek için derle -a -w -L-lncurses -p projeAdı
    2-1) -a = Argüman. Projeyi derlemek için gerekli argümanların verilmesi için gerekli parametre.
    2-2) -p = Proje olduğunu belirden argüman
  3. Dosya derlemek için derle -a -w -L-lncurses -D dosya.d

Bence çok faydalı olucak :). Hem ilerde qtd ve gtkd sorunsuz kurulduğunda arayüzünüde yapabiliriz. Ve IDE olarak bir başlangıç yapmış oluruz. IDE nin küçük bir parçası olmasına rağmen çok yardımcı olacağına inanıyorum :)

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

June 18, 2010

Projenin make dosyasının komudunu ona göre ayarlayarak bu işi yapabilirsiniz. Make kullanımını internetten öğrenebilirsiniz. Ali Bey'de make programını kullanıyor.

Yani bu proje için Ali Bey zaten make var diyebilir. Çünkü ben daha önce benzer bir projeden söz etmiştim yine Ali Bey make'den söz etmişti.

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

June 18, 2010

Evet make i biliyorum. Ama bu proje biraz farklı. Proje oluşturabiliyor. İlerde bir IDE yapacağımızda bunu kullanabiliriz. Proje yönetimi yapan bir araç bizim için çok önemli.

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

June 18, 2010

make kullanimi icin faydali olabilecek bir makale

http://akdora.files.wordpress.com/2007/01/makefile.pdf

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

June 18, 2010

Bende sizden çok daha önce böyle bir projeden bahsetmiştim.

Çünkü ben o zamanlar windowsu daha çok kullanıyordum ve trileri projesini geliştiriyorduk.(O haldeki proje ile şuankinin hiç bir alakası yok :-) )Ali Bey kendine bir make yapmış hemen 1 komut ile derliyordu. Ben ise uzun uzun yazıyordum. Ondan sonra sizinki gibi bir projeyi söylendirmiştim böylece platform bağımsızı bir biçimde tek komutla derleyebilecektik ve güzel bir şey olacaktı. Ama olmadı :-(

Evet benide bu projeye yazabilirsiniz. Githubta kendiniz açın projeyi bizde üye olalım.

Ama proje daha çok dsss benzeri olsun.

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

June 18, 2010

Make güzel bir araç. D ile yazılan bir şey çıkartalımda ortaya, dediğiniz gibi ne olursa olsun :). Projelerimizi daha kolay yöneticeğimize eminim :) . Şuanki durumu, proje ekleyip içerisinede sonradan dosya ekleyebiliyoruz. Son işlem olarak proje derlemesi kaldı. Onun üzerinde uğaşıyorum şuan :). Make den farkı olmaya başlıyor :).

can, github a atayım. İsim derle olarak kalsın mı ? Kısmet bugüneymiş. Geç oldu ama olsun :)

İlk mesajıma projenin en son halini koydum. Ali abinin dediği gibi cidden dmd çok hızlı ! Derlenin üzerinden bir program derleyin anlayacaksınız :)

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

June 18, 2010

Evet Derle adıyla github'a at. Ondan sonra birde projede yapılacak listesi adında bir liste yap ve onuda at. Sonra beraber o yapılacaklar listesini yapalım.
Alıntı:

>

Ali abinin dediği gibi cidden dmd çok hızlı ! Derlenin üzerinden bir program derleyin anlayacaksınız :)

Evet çok hızlı. Hatta rdmd ile derleyici diye değil yorumlayıcı olarak bile çalıştırabiliyoruz. Ve bu kadar hızlı olmasına karşın ben bir şeylerden feragat ettiklerini sanmıyorum.

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

June 18, 2010

Bende taaa milattan önce D ile ilk tanıştığım zamanlarda(DSSS'yi bile bilmediğim zamanlar bunlar) buna benzer bir proje yapmaya çalışmıştım. Adı Dkurucu idi.

Onda sistem şöyle yürüyordu:

Dkurucuyu açıyordun. Kur dosyası oluştur diyordun. Sonra linux için kurulum kodlarını giriyordun ve windows için kurulum kodlarını giriyordun. Dkurucu otomatik olarak o kurulum kodlarını windows için ayrı yere linux için ayrı yere kaydediyordu.

Daha sonra Dkurucu bir program kurmak için Dkurucu programAdı diyordun. O da senin windowsta mı olduğunu yoksa linuxta mı olduğunu anlayıp ona göre kurulum kodlarını system işlevi ile gönderiyordu.

Hatta bunu biraz daha geliştirmiştim. Sizin şuanda yaptığınız şeyide benim şuan anlattığım şeyide yapabiliyordu. Ama dediğim gibi benim eski bir projemdi ve aradan 1 yıldan fazla geçti. Bu yüzden son kodlar format attığımda gitmiş olmalı.

Eğer kodlar olsaydı 1 yıl önceki çıraklık döneminin başlangıcında yazdığım kodları düzenleyerek bu işi halledebilirdik.

Neyse anlatmak istediğim Derle projeside Dkurucu gibi kur dosyası oluşturup onu çalıştırsın mı ? Özel komutlar gerekirse kurulum kodlarının girilmesini isteriz. Yok gerekmez ise şu anki Derle'nin yaptığı şeyi yaptırırız. Her türlü projemizin ayarlarını bir tıkla kullanıcılara kurdurturuz. Hemde platform bağımsızı bir şekilde kurdurturuz. Denemeye değer mi ?

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

June 18, 2010

Proje içerisinde index.txt diye dosya var. Onun içerisine bayraklar diye bir kısım ekleyerek özel argümanları ordanda kullanacağız.

Şimdi derleye git ve svn desteğide getirmek gerek :). Dosya değişikliklerini takip ederek kodları gönderecek. derle -kontrol parametresiyle sistemde bekleyecek. Belirtilen projeleri kontrol edecek.

Çok harika olacağına eminim :) Sevindirik oldum valla :D

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

June 18, 2010

D programı olsun da ne olursa olsun... :)

make'i bildiğinizi biliyorum ama bir özet:

Bir programı veya herhangi bir dosyayı oluşturmak için belirli adımların işletilmeleri gerekir. O adımların birbirlerine bağımlıkları vardır.

C'den örnek olarak, deneme programını oluşturmak için deneme1.o ve deneme2.o gerekir, bir .o dosyası oluşturmak için de onun .c dosyası gerekir.

make, bütün bu adımları kafasında kurar ve bağımlılıkları göz önüne alarak projeyi az adımla oluşturur. Örneğin yalnızca deneme2.c değişmişse deneme2.o'yu derler. deneme programı deneme2.o'ya bağlı olduğu için onu da oluşturur.

make'in yetersiz kaldığı noktalar var; ve zaten o yüzden onun yerine başka programlar veya sistemler de geliştirildi. Ama çoğu proje için yeterlidir. Örneğin benim son 15 senedir çalıştığım her firma make'i kullandı. Bir çok açık kod projesi de make'i kullanır.

ddili.org'un forum dışındaki bölümleri de tamamen make ile oluşturuluyor. :)

Ama... :)

dmd çok hızlı bir derleyici. Artık bilgisayarlarımız çok hızlı ve C++ gibi çoook yavaş derlenen bir dil ile ilgilenmiyoruz. Ayrıca, derleyicinin programı en hızlı şekilde çalıştıracak şekilde derleyebilmesi için bütün kodu görmesi gerekiyor.

O yüzden, belki de artık programları tek adımda oluşturmak çoğu durumda hem yeterli hem de zaten istene şey:

dmd bütün_dosyalar_buraya -w -wi -ofprogram_ismi

Hatta, dmd çok hızlı olduğu için Phobos'a std.all isminde bir modül eklemeyi düşünüyorlar. O modül bütün diğer modülleri ekleyecek ve artık istersek modülleri tek tek seçerek kullanmak zorunda kalmayacağız.

Özet: make iyidir ama D programları yazmak için şart olmadığını düşünmeye başladım. Belki Racih'in projesinden başka yararlar da çıkar... :)

Ali

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

« First   ‹ Prev
1 2 3 4