QT ile yazılan program neden başka bilgisayarda çalışmaz?

Başlatan dert36, 24 Ekim 2013 - 23:10:28

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

dert36

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.

exclipit

Sanırım programlama eğitimi verenlerin yaptığı ilginç hatalardan birisi bu -.- ... Tam bir proje haline getirmek için insanlara düzgün örnekler vermedikleri zaman programlama yapan kişinin bilgilerinin büyük bir kısmı teoride kalıyor ve pratiğe dökülmüyor.
Çalışan iki el, dua eden binlerce elden daha çok iş yapar. – Gene Roddenberry

dert36

Alıntı yapılan: exclipit - 24 Ekim 2013 - 23:37:09
Sanırım programlama eğitimi verenlerin yaptığı ilginç hatalardan birisi bu -.- ... Tam bir proje haline getirmek için insanlara düzgün örnekler vermedikleri zaman programlama yapan kişinin bilgilerinin büyük bir kısmı teoride kalıyor ve pratiğe dökülmüyor.

Yaptığım hata nedir ?

exclipit

Yaptığın bir hata yok, bahsettiğim şey daha farklıydı orada. Cevabını QT için bilmiyorum.
Çalışan iki el, dua eden binlerce elden daha çok iş yapar. – Gene Roddenberry

iskenderoguz

kullandığın qt kütüphanelerini de uygulamayı çalıştıracağın bilgisayara taşımalısın

heartsmagic

Windows tarafı için iki yoldan bahsediyor insanlar [1]:

a. dll'leri uygulama ile aynı dizine koymak.
b. Statik derleme yapmak.

Fakat QT'nin lisansı gereği [2] statik derlemeyi ücretsiz tarafta yapamazsın. Eğer dll'leri uygulama ile aynı dizine koyduysan ve çalışmıyorsa biraz "debug" yapmak lazım o konuda. Windows tarafında nasıl yaparsın hiçbir fikrim yok ama.

[1] http://stackoverflow.com/a/2414544
[2] http://forum.ubuntu-tr.net/index.php?topic=35256.msg424463#msg424463
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

dert36


if


nalcam22

aynı sorun bendede var poco kütüphanesi yüklü olmadımı program çalışmıyor fakat program makefile halinde bu sorunu nasıl aşarız

heartsmagic

İhtiyacı olan bir kütüphane yüklü değilse nasıl çalışır uygulama? Sorunu anlamadım, kütüphaneyi beraber mi götürüyorsun?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

nalcam22

yaw mesela bu uygulama makine diline çevirilmiyormu o zaman neden kütüphane istiyorki?

heartsmagic

@nalcam22, konunun temelini biraz daha araştırmalısın bence. Makine diline çevrilme işi sihirli bir şey değil ki her şeyiyle bütün konuları halletsin. Senin açından düşünürsek o zaman dünyanın herhangi bir donanımında derlenen herhangi bir kodun her ortamda çalışması gerekirdi değil mi (bu kütüphaneden ayrı bir örnek elbette)? Uygulamalar belirli bir kütüphaneyi kullanıyorlarsa iki şey yapılabilir: Ya kütüphaneyi de beraberinde götüreceksin ya da uygulamanın çalışacağı sistemde o kütüphaneyi kuracaksın.

Bu Linux'la ya da QT ile ilgili bir mesele değil, sistemden bağımsız bir mesele. Dediğim gibi konunun temelini biraz daha araştırman lazım.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

nalcam22

küyüphaneyi nasıl götürücez?
bide bizim kurduğumuz yazılımlardamı böyle önce kütüphaneyimi kuruyorlar.

canosayan

Bazı ortak kütüphaneler var. Mesela sistemlerin neredeyse hepsi ssl biliyor. :)

Genel olarak windows tarafında uygulamaların daha büyüklü olmasının temeli bu zaten. Bir çok uygulamanın kütüphaneleri ile gelmesi. Bu gün ubuntu da gimp için 8 mb infirme gerekirken photoshop için megabytlarca veri gerekiyor.
Chmod bizim işimiz.

nalcam22

peki bu sorundan nasıl kurtulurum kütüphaneyi programamı port etcem? çünkü herkes paketleri kuramaz

ekremsenturk

Ubuntu'da bir Program kurulurken, gerekli kütüphaneler zaten daha önce bir başka kurulum ile kurulmuş değillerse, programın kurulumuna ek olarak seçilerek kuruluyorlar. Kurulumları Uçbirim üzerinden yaparsan, seçilen ve kurulan paketleri takip edebilirsin.

Windows'ta da aslında aynı. ancak Windows'un bir doğrudan erişilen programlar deposu olmadığından, Windows'ta var sayılan olarak kurulu olmayan kütüphaneler (.dll dosyaları ) kurulan programın klasörü içine ekleniyor. Aynı şekilde Linux'tada mümkün.

Bu tür (her şey tek klasörde) kurulumlar için Linux'ta opt dizini kullanılıyor ve usr/bin dizinine bir link veya bir başlatıcı ekleniyor.

Doğrudan kütüphaneler kullanarak çalışmak yerine, önce kendin bir kaç kütüphane geliştir ve bunlarla çalışmayı dene. Bu şekilde daha çok şey öğrenirsin

nalcam22

biraz araştırma yaptım qtde windows programı yazarken bazı dll dosyalarını dahil etmek gerekiyormuş ,ubuntudada ya dahil edicem yada program kurucu felanndiye bi program yazıp system ile bu kütüphaneleri kurmam gerekiyor.benim anladığım bu kadar.

heartsmagic

@nalcam22, Linux tarafında bağımlılıkları uygulamanı paketleyerek aşman gerekiyor. Paket oluşturduğunda sistem zaten senin uygulamanı kurmak istediğinde bağımlı olan kütüphaneleri de depolardan kendisi kurar.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

nalcam22

Alıntı yapılan: heartsmagic - 12 Kasım 2013 - 11:38:32
@nalcam22, Linux tarafında bağımlılıkları uygulamanı paketleyerek aşman gerekiyor. Paket oluşturduğunda sistem zaten senin uygulamanı kurmak istediğinde bağımlı olan kütüphaneleri de depolardan kendisi kurar.
işte o paketi nasıl oluşturucammonu bilmiyorum .

heartsmagic

Çok düz bir işlem değil ne yazık ki, paketleme konularını okuman lazım.

Debian tarafından belge:
https://wiki.debian.org/IntroDebianPackaging
Ubuntu tarafından belgeler:
http://developer.ubuntu.com/packaging/html/

Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

nalcam22

teşekkürler ingilizcem pek iyi değil,  ama çevirip okurum ben. yakında uygulamayıda yayınlıcam, otomatik kapatma programı aralıklarla e mail gönderiyor.

if

@nalcam22, iletilerinizi imlâya uygun olarak yazın lütfen.