PDA

Visualizza la versione completa : [c++][Qt] Come creare un eseguibile


cataDesign
12-05-2013, 12:57
Ciao a tutti!! :ciauz:
Ho creato l' applicazione Notepad che propongono nella guida di qt:
http://qt-project.org/doc/qt-5.0/qtdoc/gettingstartedqt.html

Adesso però vorrei creare il file eseguibile ed eseguirla su vari pc...
Il mio SO è linux e uso qtcreator.

Ho provato ad eseguire il file "eseguibile" del Debug e quello della Release e non funzionano fuori dalla cartella dichiarata come workspace.

La domanda è: Come faccio a creare l'eseguibile? questo può essere aperto pure su pc con SO Windows?

Grazie a tutti in anticipo!! :ciauz:

MItaly
13-05-2013, 02:00
Originariamente inviato da cataDesign
Ho provato ad eseguire il file "eseguibile" del Debug e quello della Release e non funzionano fuori dalla cartella dichiarata come workspace.
Non è normale, l'eseguibile generato dovrebbe andare tranquillamente; inoltre, che intendi per "non funzionano"?


La domanda è: Come faccio a creare l'eseguibile?
Con il comando Build->Build all (Ctrl+Shift+B).

questo può essere aperto pure su pc con SO Windows?
Ovviamente no, per generare eseguibili per Windows devi compilare su Windows (o meglio, esiste la possibilità della cross-compilazione, ma non è semplicissimo).

P.S.: come detto in passato, evita di segnalarmi le discussioni in privato, se ho tempo/possibilità di rispondere provvedo anche senza segnalarmele direttamente.

cataDesign
13-05-2013, 09:15
Ok :cry: :cry: :D

Comunque ho provato a mettere l'eseguibile su un altro so linux (dando pure i permessi di esecuzione) e si appriva una finestra che mi chiedeva di cercare e installare un programma per eseguire "l'eseguibile "

Mi chiedo. .. non è necessario installare o portare dietro con l'eseguibile pure le librerie qt?

Grazie di tutto e scusami per il pm

MItaly
13-05-2013, 17:03
Originariamente inviato da cataDesign
Comunque ho provato a mettere l'eseguibile su un altro so linux (dando pure i permessi di esecuzione) e si appriva una finestra che mi chiedeva di cercare e installare un programma per eseguire "l'eseguibile "
Sicuro di aver copiato il file giusto? :confused:

Mi chiedo. .. non è necessario installare o portare dietro con l'eseguibile pure le librerie qt?
È necessario che ci siano le Qt installate (anche se mi pare sia possibile linkarle staticamente), ma l'errore che ottieni non c'entra con questo, sembra piuttosto che tu abbia portato un file che non c'entra invece dell'eseguibile...

cataDesign
13-05-2013, 17:30
L'eseguibile nella cartella del debug, e in quello delle release apre il programma se lo lancio.

Il problema sorge quando con una pendrive porto l'eseguibile in un altro pc linux (tra l'altro senza librerie) e mi da quel problema... come faccio a portarmi dietro pure le librerie qt?


Nel caso sono file esterni con estenzione .dll oppure sono inclusi nell'eseguibile??

Quando tu crei un applicazione Cosa consegni all'utente finale?

MItaly
14-05-2013, 04:48
L'argomento è spinoso, se sull'altro sistema Linux c'è la stessa versione delle Qt (e delle altre librerie a cui si fa riferimento - in particolare, libstdc++) non ci sono problemi, altrimenti la strada più sicura è il linking statico o creare un pacchetto che si tira dietro tutte le librerie; leggi:
http://qt-project.org/doc/qt-4.8/deployment.html
http://qt-project.org/doc/qt-4.8/deployment-x11.html
anche se la cosa più comoda per l'utente finale è creare (direttamente su un'installazione della distribuzione-target) un pacchetto specifico per la sua distribuzione, che si tiri dietro le varie librerie necessarie come dipendenze.

Se il progetto è opensource comunque spesso è buona norma fornire una tarball con i sorgenti e lasciare la possibilità che l'utente si compili il tutto per i fatti suoi (qmake && make && make install).

cataDesign
18-05-2013, 08:46
Allora sto seguendo la documentazione che mi hai postato, e sono arrivato a questo punto :messner:

http://qt-project.org/doc/qt-4.8/deployment-x11.html#application-dependencies

Dove parla di Linking the Application to Qt as a Shared Library

Non ho capito una cosa ma quando dice:


After ensuring that Qt is built as a shared library,
we can build the Plug & Paint application.
First, we must go into the directory that contains the application:
cd /path/to/Qt/examples/tools/plugandpaint

io in quale cartella devo posizionarmi quella che installo con qt oppure quella della mia applicazione?

Oltretutto il path che indicano loro è diverso da quello in cui ho la cartella plugandpaint

-----------------------------------------

Sono andato avanti (assumendo che la cartella giusta fosse quella dev'è installata l'app qtcreator)
e ho provato ad eseguire da terminale make clean con il seguente errore make: *** No rule to make target `clean'. Stop. ( come altra informazione posso dirvi che in quella cartella il file make non c'è)

Boh!! :dhò: :dhò:

Loading