Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Qt-ohjelman

...

”julkaisu”

...

(deploying)

...

käyttäen

...

dynaamisesti

...

linkitettyjä

...

kirjastoja

...

Qt:lla

...

tehtyä

...

ohjelmaa

...

on

...

usein

...

tarve

...

käyttää

...

myös

...

tietokoneessa,

...

johon

...

Qt:ta

...

tai

...

sen

...

kirjastoja

...

ei

...

ole

...

asennettu.

...

Ohjelman

...

voi

...

tällöin

...

kopioida

...

muistitikulle

...

tai

...

vaikka

...

lähettää

...

sähköpostilla

...

zipattuna,

...

ja

...

sitä

...

voi

...

käyttää

...

missä

...

tahansa

...

saman

...

käyttöjärjestelmän

...

,

...

jolla

...

ohjelma

...

on

...

käännetty,

...

sisältämässä

...

koneessa.

...

Qt

...

tekee

...

julkaistavalle

...

ohjelmalle

...

oman

...

kansionsa,

...

johon

...

pitää

...

vielä

...

lisätä

...

dynaamisesti

...

linkitetyt

...

kirjastot

...

.

...

Nämä

...

ovat

...

tiedostoja,

...

joilla

...

on

...

Windowsissa

...

pääte

...

.dll

...

ja

...

Linuxeissa

...

yleensä

...

.so.

...

Tiedostot

...

löytyvät

...

jostain

...

päin

...

Qt:n

...

asennushakemistoa,

...

esim.

...

/QtSdk/Desktop/Qt/4.8.0/gcc/lib.

...

Jos

...

projektissa

...

käytetään

...

Qt:n

...

ulkoisia

...

kirjastoja,

...

esim.

...

Qwt:ta,

...

myös

...

niiden

...

kirjastotiedostot

...

on

...

lisättävä.

...

Mikäli

...

Qt

...

ei

...

tee

...

”debug”

...

tai

...

”release”

...

-kansiota,

...

on

...

vasemmalla

...

olevan

...

valikon

...

”Project”-välilehdeltä

...

asetettava

...

Shadow

...

build

...

-kohtaan

...

raksi.

...

Tällöin

...

kansio

...

tulee

...

”Build

...

directory”:ssa

...

määriteltyyn

...

polkuun.

...

”Build/run

...

target

...

selector”:sta,

...

joka

...

löytyy

...

Qt:ssa

...

vasemmalta

...

alhaalta,

...

kannattaa

...

myös

...

säätää

...

kohteeksi

...

”release”.

...

Tällöin

...

tarvittavat

...

liitekirjastot

...

ovat

...

huomattavasti

...

pienempiä

...

kooltaan.

...

Debug-version

...

kirjastot

...

tunnistaa

...

siitä,

...

että

...

niiden

...

tiedostonimen

...

perässä

...

on

...

d-kirjain,

...

esimerkiksi

...

QtCored.dll,

...

kun

...

release-version

...

vastaava

...

tiedosto

...

on

...

QtCore.dll.

...

Windowsissa

Windowsissa julkaisu on melko yksinkertaista, koska ohjelma (.exe)

...

löytää

...

.dll-tiedostot

...

samasta

...

kansiosta.

...

Lisäksi

...

ohjelma

...

sanoo,

...

jos

...

jokin

...

.dll-tiedosto

...

puuttuu.

...

Lisää

...

siis

...

julkaisun

...

kansioon,

...

eli

...

samaan

...

kansioon,

...

jossa

...

on

...

.exe-tiedosto,

...

kaikki

...

tarvittavat

...

.dll-tiedostot.

...

Näitä

...

ovat

...

käyttöliittymällä

...

varustetussa

...

ohjelmassa

...

aina

...

ainakin

...

QtCore.dll

...

ja

...

QtGui.dll.

...

Usein

...

tarvitaan

...

myös

...

muita

...

kirjastotiedostoja.

...

Myös

...

esimerkiksi

...

kuvat

...

tai

...

muut

...

ohjelman

...

käyttämät

...

resurssitiedostot

...

on

...

luonnollisesti

...

lisättävä.

...

Huom.

...

liitä

...

aina

...

oikeat

...

versiot

...

.dll-tiedostoista.

...

Jos

...

teet

...

ohjelman

...

Qt

...

4.8:lla,

...

älä

...

ota

...

tiedostoja

...

vanhemmasta

...

Qt-versiosta.

...

Windowsissa

...

tiedostojen

...

nimi

...

on

...

yleensä

...

sama

...

versiosta

...

riippumatta,

...

joten

...

niistä

...

on

...

helppo

...

erehtyä.

...

Linuxissa

Linuxissa dynaamisesti linkitetyt kirjastot ovat .so-päätteisiä,

...

jonka

...

lisäksi

...

niiden

...

perässä

...

on

...

usein

...

versionumero.

...

Aina

...

tarvittavat

...

tiedostot

...

Qt

...

4.8.0:ssa

...

ovat

...

siis

...

libQtCore.so.4.8.0

...

ja

...

libQtGui.so.4.8.0.

...

Linuxiin

...

pätevät

...

muuten

...

samat

...

säännöt

...

kuin

...

Windowsiin,

...

mutta

...

ohjelma

...

yleensä

...

etsii

...

kirjastoja

...

jostain

...

päin

...

koneen

...

tiedostojärjestelmää,

...

tyypillisesti

...

/usr/lib

...

-hakemistosta.

...

Ohjelmalle

...

on

...

siis

...

kerrottava

...

missä

...

tiedostot

...

ovat.

...

Yksinkertaisinta

...

on

...

ehkä

...

tehdä

...

skriptitiedosto

...

tekstinkäsittelyohjelmalla,

...

vaikkapa

...

Gedit:llä.

...

Tee

...

siis

...

ohjelman

...

kansioon

...

tekstitiedosto,

...

ja

...

nimeä

...

se

...

samalla

...

nimellä

...

kuin

...

ohjelmasi,

...

päätteeksi

...

”.sh”.

...

Esim.

...

jos

...

ohjelmasi

...

on

...

nimeltään

...

”Peli”,

...

tekstitiedoston

...

nimen

...

on

...

oltava

...

”Peli.sh”.

...

Kopioi

...

tiedostoon

...

seuraava

...

sisältö:

Code Block
\\

{code}
#!/bin/sh

appname=`basename $0 | sed s,\.sh$,,`

dirname=`dirname $0`

tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ]; then

dirname=$PWD/$dirname

fi

LD_LIBRARY_PATH=$dirname

export LD_LIBRARY_PATH

$dirname/$appname "$@"
{code}
\\

Tämän jälkeen ohjelman voi suorittaa ajamalla skriptitiedosto Terminalista: 


Tämän jälkeen ohjelman voi suorittaa ajamalla skriptitiedosto Terminalista: ”./Peli.sh”.

...

Ensin

...

on

...

luonnollisesti

...

mentävä

...

ohjelman

...

hakemistoon.

...

Voi

...

olla,

...

että

...

ohjelmalle

...

ja

...

skriptille

...

pitää

...

vielä

...

antaa

...

oikeuksia:

...

sudo

...

chmod

...

777

...

Peli

...

sudo

...

chmod

...

777

...

Peli.sh

...

Jos

...

ohjelma

...

hakee

...

kirjastotiedostoa

...

lyhyemmällä

...

versionumerolla,

...

esim.

...

libQtCore.so.4,

...

tee

...

seuraavasti.

...

Paina

...

kirjastotiedostoa,

...

esim.

...

libQtCore.so.4.8.0

...

oikealla

...

näppäimellä,

...

valitse

...

”tee

...

linkki”

...

(create

...

link),

...

nimeä

...

tehty

...

linkki

...

ohjelman

...

haluamalla

...

nimellä,

...

tässä

...

tapauksessa

...

siis

...

”libQtCore.so.4”.

...

Saat

...

ohjelmasta

...

pikakuvakkeen

...

tekemällä

...

luomastasi

...

skriptitiedostosta

...

(.sh)

...

linkin

...

em.

...

tavalla

...

ja

...

valitsemalla

...

”Run

...

in

...

terminal”,

...

kun

...

haluat

...

suorittaa

...

ohjelman.

...

Lähde:

...

developer.qt.nokia.com/doc/qt-4.8/deployment.html