Forum: D Programlama Dili RSS
QtD'nin kurulması
Sayfa:  1  2  sonraki 
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: QtD'nin kurulması
Fazla sevinmeyin, çünkü ben disk yetersizliği gibi sorunlarla tamamlayamadım ama denemek isteyenler olur diye şimdiye kadar izlediğim adımlar aşağıda.

Sanırım ./configure -static yazmak çok yer tutuyor. Önce yalnızca configure yazmayı deneyebilirsiniz.

Benim için çoook uzun süren bir deneme oldu. Umarım bir sanal makine olduğu içindir.

İyi şanslar! :)
Ali

QtD'nin günlük Ubuntu ve Debian paketleri olduğunu da öğrendim isterseniz şu sayfadaki adımları izleyebilirsiniz:

  http://www.dsource.org/projects/qtd/wiki/UbubtuDebianPacka…

Ama ben onları değil, aşağıdakileri uyguladım. İlk dört adım, Qt'nin kendisinin kurulması ile ilgili; ondan sonrakiler QtD ile ilgili:

1) g++'ı kurun

Ben Ubuntu'nun paket yöneticisi ile şöyle kurdum:

  sudo apt-get install g++

2) qt4-qmake'in ihtiyacı olan paketleri kurun

  sudo apt-get build-dep qt4-qmake

3) Qt 4.6.2'yi kurun

3a) Şuradan indirin ve bir dizine açın (örneğin ~ dizinine):

  http://qt.nokia.com/downloads

(Ben küçük olsun diye Qt: Framework Only olanını seçtim. Bir Linux sistemine kurduğum için de Linux/X11)

3b) Şuradaki kurma adımlarını uygulayın:

  http://qt.nokia.com/doc/4.6/installation.html

Benim denediğim xubuntu sisteminde aşağıdaki dört adım yeterli oldu (özellikle make çok uzun sürüyor):

  cd ~/qt-everywhere-opensource-src-4.6.2
  ./configure
         (Open Source Edition'ı seçin)
         (Lisansı kabul etmek için 'yes' yazın.)
         (Eğer en sonunda hata olursa belki de burada ./configure -static yazılması gerektiği için olabilir; ama umarım gerekmez)
  make
  sudo make install

3c) ~/.profile dosyasına şu iki satırı ekleyin:

  PATH=/usr/local/Trolltech/Qt-4.6.2/bin:$PATH
  export PATH

4) Herşey yolunda gittiyse, sabit diskte yer açmak için:

  make distclean

Bundan sonrası QtD'nin kurulmasıyla ilgili. Hem gereken araçları kurmakla ilgililer, hem de şu adımları uyguluyorlar:

  http://dsource.org/projects/qtd/wiki/BuildLinux

5) dmd 2.040 veya daha sonrasını kurun

Ben 2.040 ile denedim...

5a) Örneğin şuradan indirin:

  http://ftp.digitalmars.com/dmd.2.040.zip

5b) Şuradaki adımları izleyerek kurun:

  http://ddili.org/kurulum/dmd.html

6) Mercurial'ı kurun

  sudo apt-get install mercurial

7) cmake'i kurun

  sudo apt-get install cmake

8) QtD'yi kurun

QtD'nin dmd 2.040 ile çalışan dalının (branch) ismi signals'mış. Onun için o dalı indirmek gerekiyor...

8a) Şu şekilde indirin:

  cd ~
  hg clone http://hg.dsource.org/projects/qtd/signals qtd

8b) Şu şekilde kurun

  cd qtd
  mkdir build_dir
  cd build_dir
  cmake ../
  make
canalpay (Moderatör) #2
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ben 12 saat kurmak için uğraşmışımdır.(Yatarken daha derliyordu :-) )

Şuan kurulumun son aşamasına geldi ve sonunda şöyle hatalar verdi . http://www.ozgurlukicin.com/yapistir/441/

Sanırım gtkD yeterli :-)
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
canalpay:
sonunda şöyle hatalar verdi . http://www.ozgurlukicin.com/yapistir/441/

Sanırım çok kısa bir süre önce birisinin yaptığı değişiklikler nedeniyle olmalı:

  http://hg.dsource.org/projects/qtd/signals

enum'larla ilgili hatalar ondan olabilir... O 'changeset'in numarası 336. Ben de ondan önceki 'changeset'leri indirip deneyeceğim. 335, dört hafta önceymiş. Herhalde o çalışıyordur ve herhalde ben zaten onunla denemişimdir.

hg'nin komut satırı seçeneklerinden birisi 'changeset' numarasıdır herhalde. Daha sonra onunla 335 olarak belirteceğim.

Sanırım gtkD yeterli :-)

Öyle görünüyor... :)

Ali
Mengu (Moderatör) #4
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
gtkD ile ilgili bir sorunum var, cozulmezse QtD'ye gececegim. benim makinede Qt 4.5.2 var ve QtD'yi rahatlikla kurabildim. http://pastie.org/private/7xj1p0m9qrtmjrzzlc8eg adresindeki hatayi almistim, o hatadan da build/gui.txt'den QGraphicsObject'i silerek kurtuldum. ardindan tekrar cmake ../ & make & sudo make install yaparak QtD'yi kurabildim. hatta http://www.dsource.org/projects/qtd/wiki/BuildLinux adresindeki hello world screenshot'ini ben aldim :)

bu mesaji yazarken gtkD problemime cozum getirmisler: http://www.dsource.org/forums/viewtopic.php?t=5245
http://www.mengu.net - some kind of monster
levent2z #5
Üye Haz 2010 tarihinden beri · 16 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: QtD windows kurulumu
QtD yi windows altinda kurmayi deneyen varmi
ben basarili olamadim baska deneen varsa tecrübelerimizi paylasabiliriz.
Google aramalarimdada hep linux cözümleri ile karsilastim.

To build QtD, you need:

•dmd compiler version >= 2.046
•Qt 4.6 bundle
•MinGW (included in Qt SDK distribution or you can download the automated MinGW installer from here). qt\bin (that contains qmake.exe) and mingw\bin directories need to be in the PATH environment variable.
•implib tool
•cmake >= 2.6

Bu gerekenleri indirdim kurdum pathleri ayarladim.

Build procedure

hg clone http://hg.dsource.org/projects/qtd
cd qtd
mkdir build_dir
cd build_dir

cmake -G  "MinGW Makefiles" ../    Bu MinGW makefiles lar nerede ??
mingw32-make    neyi make edecegim
Bu mesaj levent2z tarafından değiştirildi; zaman: 2010-06-03, 08:11.
levent2z #6
Üye Haz 2010 tarihinden beri · 16 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Applying the patch
1. If you do not have the patch utility installed:

Windows

Get it from http://gnuwin32.sourceforge.net/packages/patch.htm

''Linux'' (Debian and derivatives)

Run

sudo apt-get install patch
2. To apply the patch, run the following commands in the console:

cd dmd-source-dir
patch -p0 -i dmd.dmd-version.patch
where 'dmd-source-dir' is the path to the dmd source directory (e.g. C:/dmd/dmd2/src/dmd) and 'dmd-version' is the dmd version number the patch was created against (e.g. 2.046)


Patch i yaptim problemsiz

Compiling the patched dmd
In the dmd source directory, run:

Windows

make -f win32.mak release
Linux

make -f linux.mak release


make -f win32.mak release den sonra error aliyorum.
C:\D\dmd2\src\dmd>patch -p0 -i dmd.2.046.patch

C:\D\dmd2\src\dmd>make -f win32.mak release
make -fwin32.mak C=backend TK=tk ROOT=root clean
del *.obj
del total.sym
del msgs.h msgs.c
del elxxx.c cdxxx.c optab.c debtab.c fltables.c tytab.c
del impcnvtab.c

make -fwin32.mak C=backend TK=tk ROOT=root dmd
make -fwin32.mak C=backend TK=tk ROOT=root OPT=-o "DEBUG=" LFLAGS=-L/delexe dmd.
exe
dmc -cpp idgen
link idgen,,,user32+kernel32/noi;


idgen

\dm\bin\dmc -c -Iroot;\dm\include  -o  -cpp -D_DH  mars -Ae
Error: '\dm\bin\dmc' not found

--- errorlevel 1

--- errorlevel 1
C:\D\dmd2\src\dmd>

Bu mesaj levent2z tarafından değiştirildi; zaman: 2010-06-03, 16:24.
canalpay (Moderatör) #7
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
QtD'yi bugün kurdum. Kurarken uyarı(Warning) versede kurulumu tamamladı.
Kurarken Ali Beyin yazdığı adımları uyguladım(ilk başta ./configure -static dedim).
Ali beyin qtD'yi edindim ve güncel qt ile(4.6.3) ile kurdum.

Ama bir örnek çalıştıramadım. dosya yerleri Ali Beyin verdiği örnekteki gibi. Aynı.
Sanırım hata bende. Ama nasıl bir komut vermeliyim ?
canalpay (Moderatör) #8
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yani hatasız ama uyarılı olarak qtD'yi kurdum.

Nasıl örnek çalıştırabilirim diye soruyorum ?


Bu arada  şuan örnek çalıştırabilmek için ~/qtd/examples'de konsoldan cmake ../ ve ardından make dedim. Bir şeyler yapıyor.
canalpay (Moderatör) #9
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Belirli bir yere kadar gelebildim.

Bu belirli bir noktaya doğru mu geldim bilmiyorum ama yaptıklarım şunlar idi :

/usr/local/lib dizinine gerekli kütüphaneleri(.a ile biten) kopyaladım.(diye sanıyorum.)

/usr/local/include/d içine gerekli dizinleri karma yapıp kopyaladım.(diye sanıyorum.)

Ve en sonunda şöyle bir hata verdi: http://www.ozgurlukicin.com/yapistir/580/
acehreli (Moderatör) #10
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
QTextCodec_shell.cpp:(.text+0xb13): undefined reference to `QListData::detach3()'
/usr/local/lib/libqtdcore.a(QTextCodec_shell.cpp.o): In function `qtd_QTextCodec_codecForUtfText_QByteArray_QTextCodec':
...
collect2: ld returned 1 exit status

Hepsi bağlayıcı hataları yani. Tanımsız (undefined) olduğu söylenen isimlerin hep Q ile başladıklarına bakılırsa Qt'nin bir kütüphanesi bulunamıyor. (?)

Ali
canalpay (Moderatör) #11
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Hepsi bağlayıcı hataları yani. Tanımsız (undefined) olduğu söylenen isimlerin hep Q ile başladıklarına bakılırsa Qt'nin bir kütüphanesi bulunamıyor. (?)

Ne yazık ki bu yeterince açıklayıcı olamaz. Ben demiştim hata mesajları yeterli değil diye. Neden zamanında işlev yazılmış tanımlanmış mı tanımlanmamış mı bakılmaz ki !

Belki yarın yine denerim patch ile diyeceğim ama denemekte o kadar kolay değil ki.

Mengü Bey kurdum demişti ama nasıl kurduğunu söylemedi. Aslında ondan da öğrenebiliriz belki.
acehreli (Moderatör) #12
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
canalpay:
Neden zamanında işlev yazılmış tanımlanmış mı tanımlanmamış mı bakılmaz ki !

Bu, bağlayıcının bir esnekliğinden kaynaklanıyor: bağlayıcı, dilden haberi olmadan kendisine verilen program parçalarını (.o dosyaları (object files) ve kütüphaneler) bir araya getirir ve programı oluşturur.

Program parçaları daha bağlayıcıya gelmeden önce ayrı ayrı derlendikleri için, eksik tanımlar ancak bağlama durumunda anlaşılabiliyor.

Bağlayıcı da elinden geldiği kadar bilgiyi veriyor. Örneğin alıntı yaptığım bölümden anlaşıldığına göre,

- /usr/local/lib/libqtdcore.a isimli kütüphaneyi oluşturan
- QTextCodec_shell.cpp.o dosyasının içindeki
- qtd_QTextCodec_codecForUtfText_QByteArray_QTextCodec isimli işlev,
- QListData::detach3() çağrısı yapmış

ama QListData::detach3() işlevi, .o veya .a dosyaları içinde bulunamıyor.

Derleme zamanında hiçbir hata olmadığı için derleyici hata veremiyor. Bağlayıcı farkettiğinde ise çok geç oluyor. :/

.cpp uzantısına bakılırsa o dosyalar hep C++ dosyaları. D'de bütün .d dosyalarını dmd satırına yazmamızın bir yararı da bu tür hataların daha derleme zamanında görülebilmeleri.

Belki yarın yine denerim patch ile diyeceğim ama denemekte o kadar kolay değil ki.

Çok zor iş gerçekten. Bence en iyisi çalışan bir Linux dağıtım pakedi bulmak. :/

Ali
levent2z #13
Üye Haz 2010 tarihinden beri · 16 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
bir halt ettim bende linux kurdum (ubuntu)
qtd olmasa bile linux icin qt kurmaya calisiyorum.
hala derliyor 45dk felan oldu.
ne kadar sürecek bu :D
acehreli (Moderatör) #14
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bence en iyisi Qt'yi Linux dağıtımın paket yöneticisi ile kurmalı... Desteklenmiyor mu acaba? Mengüüü! Yardııım! :)

Ali
Mengu (Moderatör) #15
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
Bence en iyisi Qt'yi Linux dağıtımın paket yöneticisi ile kurmalı... Desteklenmiyor mu acaba? Mengüüü! Yardııım! :)

Ali

yettim ustad! :)

kde kullanan bir dagitim kullaniyorsaniz qt otomatik mevcut.

ben gnome kullaniyorum. oturup qt falan derlemedim acikcasi, kde'de cok sevdigim bir program var "konversation" isminde, bir irc client, onu kurdum, gerekli qt kutuphanelerini kurdu. fakat buna ihtiyaciniz yok, libqt4 paketlerini kurmaniz yeterli.

geleyim, qtd'yi kurmaya. onu da suradaki gibi yaptim http://dsource.org/projects/qtd/wiki/BuildLinux. fakat build ederken "QGraphicsObject" hata vermisti. build/gui.txt'den bunu silerek denememi soylediler, ben de o sekilde yaptim ve sorunsuz kuruldu.

hatta o verdigim linkteki screenshot bana ait. :)
http://www.mengu.net - some kind of monster
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  1  2  sonraki 
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-19, 05:52:08 (UTC -08:00)