QT Kütüphanelerinin Boyutu Neden Bu Kadar Büyük?

  • Konuyu başlatan Konuyu başlatan dert36
  • Başlangıç tarihi Başlangıç tarihi

dert36

Öğrenci
Katılım
19 Ekim 2013
Mesajlar
28
Reaksiyon puanı
1
Puanları
8
Ben Windows XP yüklü bilgisayarıma öğrenmek amaçlı QT'yi kurdum. Kurduktan sonra denemek amaçlı bir iki tane metin kutusu ve buton ekledim. Programın hiç bir işlevi yok. Sadece metin kutusu ve buton var. Başka bişey yok. Programı derledim. Programın klasörüne girdim. Programı açarken eksik dll hatası verdiği dll kütüphanelerini programın klasörünün içine attım. Program klasörü 320 MB oldu. Hiç bir işlevi olmayan dünyanın belkide en ufak programı 320 mb boyutunda nasıl oluyor anlamıyorum? Bu kütüphane dosyalarının boyutları neden bu kadar yüksek? Bu programın boyutunu düşürmenin bir yolu yok mu ?
 

dert36

Öğrenci
Katılım
19 Ekim 2013
Mesajlar
28
Reaksiyon puanı
1
Puanları
8
QT'nin son sürümünü kurdum. Bir kaç textbox ve buton ekledin. Deneme amaçlı derledim. Programın ihtiyaç duyduğu kütüphaneleri programın klasörüne attım. Sorun şu ki; program, QT'nin yüklü olduğu bilgisayarda çalışıyor. QT'nin yüklü olmadığı bilgisayarda çalışmıyor. Bu sorunu nasıl çözebiliriz? Neden bu programı sadece QT'nin yüklü olduğu bilgisayarda çalışıp diğer sistemlerde çalışmıyor?

Ubuntu üzerine windows xp'yi sanal olarak kurdum. QT uygulamasını orda yazdım. Ama sadece QT'nin yüklü olduğu sistemde çalıştı. QT olmayan sistemlerde "Microsoft Visual C++ Runtime" gibi bir hata veriyor.
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
Microsoftun sitesinden runtime paketini indir, öncelikle onu kur bilgisayara.

Bir de Qt den debug kütüphanelerini taşımıyorsun değil mi? Qt de program yazarken ilk elde debug ile çalışırsın daha sonra release a geçilir. Proje derleme tipini değiştirdin inşAllah.
 

falcon291

Profesör
Katılım
6 Eylül 2012
Mesajlar
1,360
Reaksiyon puanı
45
Puanları
228
Sorunun cevabını da soruyu sorarken verdiğinin herhalde farkındasın...
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
Ben Windows XP yüklü bilgisayarıma öğrenmek amaçlı QT'yi kurdum. Kurduktan sonra denemek amaçlı bir iki tane metin kutusu ve buton ekledim. Programın hiç bir işlevi yok. Sadece metin kutusu ve buton var. Başka bişey yok. Programı derledim. Programın klasörüne girdim. Programı açarken eksik dll hatası verdiği dll kütüphanelerini programın klasörünün içine attım. Program klasörü 320 MB oldu. Hiç bir işlevi olmayan dünyanın belkide en ufak programı 320 mb boyutunda nasıl oluyor anlamıyorum? Bu kütüphane dosyalarının boyutları neden bu kadar yüksek? Bu programın boyutunu düşürmenin bir yolu yok mu ?

Boyutunun büyük olması tamamen debug kütüphanelerini kullandığın için. Derleme tipini release olarak değiştirmen gerekiyor.
 

dert36

Öğrenci
Katılım
19 Ekim 2013
Mesajlar
28
Reaksiyon puanı
1
Puanları
8
Microsoftun sitesinden runtime paketini indir, öncelikle onu kur bilgisayara.

Bir de Qt den debug kütüphanelerini taşımıyorsun değil mi? Qt de program yazarken ilk elde debug ile çalışırsın daha sonra release a geçilir. Proje derleme tipini değiştirdin inşAllah.

Teşekkür ederim :) ilk önce debug olarak derledim boyutu büyük oldu. sonra release olarak derledim. ama debug olanda release olanda diğer bilgisayarlarda çalışmadı. Teşekkürler. Runtime paketini indirip deniyeceğim

- - - Mesaj Güncellendi - - -

Sorunun cevabını da soruyu sorarken verdiğinin herhalde farkındasın...

farkında değilim
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
Çaba göstermeni sevdim. Bir şeye ihtiyacın olursa özelden direkt bana ulaşabilirsin. Elimden geldiğince yardımcı olurum.

Düzeltme: Geç cevap yazarım lakin Allah izin verirse illa ki yazarım.
 

dert36

Öğrenci
Katılım
19 Ekim 2013
Mesajlar
28
Reaksiyon puanı
1
Puanları
8
Çaba göstermeni sevdim. Bir şeye ihtiyacın olursa özelden direkt bana ulaşabilirsin. Elimden geldiğince yardımcı olurum.

Düzeltme: Geç cevap yazarım lakin Allah izin verirse illa ki yazarım.

Teşekkür ederim. sağolun :) Microsoft Runtime'ı kurdum ama yine çalışmadı :(
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
Teşekkür ederim. sağolun :) Microsoft Runtime'ı kurdum ama yine çalışmadı :(

32 bit, 64 bit sistemler için değişir. Kurulum paketi hali hazırda Qt' nin içinde, bir yerlerde de duruyor olabilir. Runtime' dan sonra çalışmaması mümkün değil kardeşim. Tam olarak nasıl bir hata çıkıyor karşına. Ekran görüntüsü gönderme imkanın var mı ?

- - - Mesaj Güncellendi - - -

Şuranın da sana yardımı olabilir.

http://harmattan-dev.nokia.com/docs/library/html/qt4/deployment-windows.html

- - - Mesaj Güncellendi - - -

Evet ingilizce şart :)

- - - Mesaj Güncellendi - - -

Bir de derleyici olarak, mingw kullandı isen ondan da birkaç dll atman gerekebilir. Bu dll lerin hangileri olduğunu, hızlıca dependecy walker programı ile bulabilirsin.

- - - Mesaj Güncellendi - - -

İnşAllah Yarın devam ederiz. Şimdilik bana müsade.
 

dert36

Öğrenci
Katılım
19 Ekim 2013
Mesajlar
28
Reaksiyon puanı
1
Puanları
8
32 bit, 64 bit sistemler için değişir. Kurulum paketi hali hazırda Qt' nin içinde, bir yerlerde de duruyor olabilir. Runtime' dan sonra çalışmaması mümkün değil kardeşim. Tam olarak nasıl bir hata çıkıyor karşına. Ekran görüntüsü gönderme imkanın var mı ?

- - - Mesaj Güncellendi - - -

Şuranın da sana yardımı olabilir.

http://harmattan-dev.nokia.com/docs/library/html/qt4/deployment-windows.html

- - - Mesaj Güncellendi - - -

Evet ingilizce şart :)

- - - Mesaj Güncellendi - - -

Bir de derleyici olarak, mingw kullandı isen ondan da birkaç dll atman gerekebilir. Bu dll lerin hangileri olduğunu, hızlıca dependecy walker programı ile bulabilirsin.

- - - Mesaj Güncellendi - - -

İnşAllah Yarın devam ederiz. Şimdilik bana müsade.

Teşekkür ederim :) ingilizcem yok malesef. o sayfada yazılanlardan anlamadım :) programı açınca iki tane hata veriyor. İlk verdiği hata bu :

http://t1310.hizliresim.com/1g/t/twcvl.png

Diğer hata da bu :

http://t1310.hizliresim.com/1g/t/twcwj.png

dependecyy walker programını yükledim. programı seçtim. karşıma şöyle bir ekran çıktı :

http://t1310.hizliresim.com/1g/t/twcuv.png

Başında soru işareti olan dll'leri internetten bulup klasöre attım. Programı açınca yine hata verdi. Tekrar programı açtım baktım başka dll'ler istedi bu sefer. Onları da yükledim. Yine açılmadı. Yine baktım bu sefer yine başka dll'ler istedi. :(
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
Qt kuruyorum sisteme. Sanal makina da kuracağım. Denemeyi yapıp sana haber ederim. İngilizce malesef şart kardeşim. Bu açığını kapatmalısın.
 

raxetul

Profesör
Katılım
17 Nisan 2009
Mesajlar
1,405
Reaksiyon puanı
31
Puanları
228
VCRuntime'ı kurup sadece QtCore5.dll i exe'nin yanına koy yeter. http://www.dependencywalker.com/ uygulaması ile hangi dll'lere ihtiyacın olduğuna bakar sadece onları exe nin yanına koyarsın.

VCRuntime dll lerini kurmadan exe'nin yanına koymak gibi de bir çakallık yapma, yemez.

http://nsis.sourceforge.net/Main_Page ile bir kurulum hazırla, gerekli VCRuntime ı kursun, dll ve exe leri de Program Files altına kopyalasın. Uygulamayı dağıtırken, başka makineye taşırken en temiz çözüm olur.
 

dert36

Öğrenci
Katılım
19 Ekim 2013
Mesajlar
28
Reaksiyon puanı
1
Puanları
8
Qt kuruyorum sisteme. Sanal makina da kuracağım. Denemeyi yapıp sana haber ederim. İngilizce malesef şart kardeşim. Bu açığını kapatmalısın.

ingilizce öğrenmeye çalışacağım. Sağolun zahmet etmeseydiniz keşke :(

- - - Mesaj Güncellendi - - -

VCRuntime'ı kurup sadece QtCore5.dll i exe'nin yanına koy yeter. http://www.dependencywalker.com/ uygulaması ile hangi dll'lere ihtiyacın olduğuna bakar sadece onları exe nin yanına koyarsın.

VCRuntime dll lerini kurmadan exe'nin yanına koymak gibi de bir çakallık yapma, yemez.

http://nsis.sourceforge.net/Main_Page ile bir kurulum hazırla, gerekli VCRuntime ı kursun, dll ve exe leri de Program Files altına kopyalasın. Uygulamayı dağıtırken, başka makineye taşırken en temiz çözüm olur.

QT ile program yazmak tam baş ağrısı anlaşılan :( Visual C++ Runtime kurdum yine de çalışmıyor. Teşekkür ederim. Benim anlamadığım visual c++ runtime visual studio da yazılan visual c++'lar için değil miydi? visual c++ runtime'nin benim programımla ne ilgisi var onu bir türlü anlamadım. sonuçta ben qt ile prgoram yazıyorum
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
Qt ile program yazmak çok kolay. Bunu zor hale getirmek mümkün. Malesef Qt hakkında türkçe döküman çok az. Ayrıca vcredist paketleri, Qt nin kurulu olduğu yerde, vcredist klasörünün içerisinde geliyor.

Qt de yazdıkların windows sistemi ile uyumlu olduğundan, qt nin kendisi de bazı windows çağrılarını kullandığı için, runtime kütüphanelerine ihtiyacın var. Bunlar onun için gerekli.
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
Selamlar [MENTION=372646]dert36[/MENTION].

Qt 5 kullanmamıştım. Akşam bakabildim ve sonuçları yazıyorum. Qt ile yaptığın en küçük uygulamanın dahi çalışması için aşağıdaki dll dosyalarını bulup, en azından programın olduğu klasöre, uygulamanın yanında barındırman gerekiyor. Bir de "platforms" adında bir klasör oluşturup, qwindows.dll eklentisini bu klasöre kopyalaman gerekiyor.

Ağaç yapısına göre uygulamanın hiyerarşisi aşağıdaki gibi olmalı;

Uygulama.exe
icudt51.dll
icuin51.dll
icuuc51.dll
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
platforms/qwindows.dll

Qt5 ile beraber platform desteğini plugin haline getirmişler. Böylelikle çarpraz platformlar için, ortak uygulamalar hazırlamayı kod tarafında kolay hale getirmeyi düşünmüşler. Tüm dosyalar Qt nin altında mevcut. Hangi derleyici ile derleme yapıyorsan plugin dosyasını ve diğer dll dosyalarını ona uyumlu olanlarından seçmelisin.

Yine sorun olursa yaz lütfen.

Tekrar ediyorum, ingilizce ŞART
 

dert36

Öğrenci
Katılım
19 Ekim 2013
Mesajlar
28
Reaksiyon puanı
1
Puanları
8
Selamlar @dert36.

Qt 5 kullanmamıştım. Akşam bakabildim ve sonuçları yazıyorum. Qt ile yaptığın en küçük uygulamanın dahi çalışması için aşağıdaki dll dosyalarını bulup, en azından programın olduğu klasöre, uygulamanın yanında barındırman gerekiyor. Bir de "platforms" adında bir klasör oluşturup, qwindows.dll eklentisini bu klasöre kopyalaman gerekiyor.

Ağaç yapısına göre uygulamanın hiyerarşisi aşağıdaki gibi olmalı;

Uygulama.exe
icudt51.dll
icuin51.dll
icuuc51.dll
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
platforms/qwindows.dll

Qt5 ile beraber platform desteğini plugin haline getirmişler. Böylelikle çarpraz platformlar için, ortak uygulamalar hazırlamayı kod tarafında kolay hale getirmeyi düşünmüşler. Tüm dosyalar Qt nin altında mevcut. Hangi derleyici ile derleme yapıyorsan plugin dosyasını ve diğer dll dosyalarını ona uyumlu olanlarından seçmelisin.

Yine sorun olursa yaz lütfen.

Tekrar ediyorum, ingilizce ŞART

Size ne kadar teşekkür etsem azdır. Çok çok teşekkür ederim. Allah razı olsun. platforms klsörü açıp içine qwindows.dll dosyasını atınca diğer sistemde de çalıştı. Çok mutlu oldum :)))))))))) çok teşekkür ederimmmmm... ingilizceyi öğreneceğim inşallah :)
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
Cümlemizden Allah razı olsun kardeşim :) Ben teşekkür ederim. Sayende bilgi tazeledim :)
 

raxetul

Profesör
Katılım
17 Nisan 2009
Mesajlar
1,405
Reaksiyon puanı
31
Puanları
228
ingilizce öğrenmeye çalışacağım. Sağolun zahmet etmeseydiniz keşke :(

- - - Mesaj Güncellendi - - -



QT ile program yazmak tam baş ağrısı anlaşılan :( Visual C++ Runtime kurdum yine de çalışmıyor. Teşekkür ederim. Benim anlamadığım visual c++ runtime visual studio da yazılan visual c++'lar için değil miydi? visual c++ runtime'nin benim programımla ne ilgisi var onu bir türlü anlamadım. sonuçta ben qt ile prgoram yazıyorum

VCRuntime bizim yazdığımız printf, malloc gibi standart temel C işlevlerini kullanırken yaptığımız işi sistem çağrılarına/işletim sistemi çağrılarına dönüştürüyor. Linux altında da benzer .so dosyları var ama standart ve düzenli olduğu için fazla sorun çıkartmıyor. Windows'ta hangi VC derleyicisi (VS2005, vs2010) ile derlersen onun C runtime paketini kurmak gerekiyor. Hatta diyelim ki VS 2008 kullanıyorsan ve servis paketini yüklemişsen, o servis paketinin build numarası ile aynı olan VCRuntime'ı kurmak zorundasın.
 
Üst