Aller au menu - Aller au contenu

Compiler et utiliser des applications développées avec Qt sans DLL

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1 
Pseudo Commentaire
Page 1 
Hors ligne spider-mario # Posté le 31/01/2010 à 13:31:28
Avatar

Ville : Montigny-lès-cormeilles
Pays : France métropolitaine
Études : INSA Rouen

J'ai plusieurs remarques :
  • À aucun moment tu ne mentionnes le fait que la compilation statique oblige à fournir le code source de l'application à moins de posséder une license commerciale.
  • Il y a un meilleur moyen que celui que tu donnes pour supprimer la dépendance à mingwm10.dll : il s'agit de passer -no-exceptions à configure, et l'on peut toujours utiliser les threads (d'ailleurs, QThread n'est pas un widget).
  • Enfin, avant de lancer UPX, il est possible de lancer « strip » sur l'exécutable.
Hors ligne Merkil # Posté le 31/01/2010 à 14:22:38
Avatar
Groupe : Bannis

Pour compresser au maximum:
D'abord
Code : Console
strip -s app.exe

Puis
Code : Console
upx --best app.exe


On obtient un exécutable avec une taille optimale.
Sinon c'est pas mal :)
 
Hors ligne thezapper602 # Posté le 31/01/2010 à 14:26:12
Accro de Minecraft
Avatar

Ville : Repentigny
Pays : Canada

Moi aussi j'ai remarqué quelque chose. Quand on fait des inclusions statiques (sans DLL), on n'est plus dans les termes de la LGPL. Donc, on est alors obligés de mettre une licence LGPL ou GPL. :(

Au moins, ça fait une raison de plus de rendre son code libre!
Hors ligne Debian # Posté le 31/01/2010 à 16:16:08
Avatar

Je l'ai lu très rapidement et je me suis fait la même remarque à propos de la licence.

Sinon le tutoriel a l'air intéressant.

Mon blog sur l'informatique

Vous faites des fautes d'orthographe et vous le savez ? Corrigez votre message avant de le poster sur BonPatron

Utiliser un bug tracker pour travailler efficacement en équipe
 
Hors ligne *Baby* # Posté le 31/01/2010 à 17:06:19
Avatar

Études : INSA Strasbourg

Toutes vos considérations vont être prises en compte dans une très prochaine mise à jour.

Merci.
 
Connecté SpaceFox # Posté le 31/01/2010 à 21:20:40
Utilise ton cerveau !
Avatar
Validateurs
Flux RSS

Études : UTT

Je plussoie les remarques ci-dessus.

D'autre part, tu pourrais remplacer les temps de compilation ("comptez 30 minutes", "comptez 4h") par le temps que tu mets sur ton PC, avec la puissance approximative.
Bah oui, tout le monde n'a pas le même PC que toi (si t'as un Core i7 et que j'ai un vieux P4, ou l'inverse) ; de plus ton tuto sera toujours là dans quelques années, et la puissance des PC aura augmenté.

Image utilisateur
 
Hors ligne silentphoebus # Posté le 01/02/2010 à 13:42:46

Merci pour ce tuto, par contre j'ai tout fais mais j'ai toujours la dépendance sur : libgcc_s_dw2-1.dll. Aurais je raté un truc ?
Merci
Hors ligne alidegwada # Posté le 01/02/2010 à 20:41:47
Avatar
Flux RSS

Ville : Les abymes
Pays : Guadeloupe

moi aussi j'ai toujours la dépendance mais c'est DLL de mingw G++ et non de QT

Citation : Arthur Schopenhauer
En métaphysique rien n'est sûr, sauf la migraine qui en est le prix


Code : C++
1
2
3
4
5
6
7
8
9
#include <iostream>

using namespsace std;

int main()
{
    system("PAUSE");
    return 0;
}


Code : PHP
1
2
3
<?php
    echo "Hello word !";
?>



Userbar3J'en suis trop fier
Image utilisateur
Image utilisateur
Image utilisateur
Image utilisateur

 
Hors ligne *Baby* # Posté le 01/02/2010 à 20:47:18
Avatar

Études : INSA Strasbourg

Voici un post dans le forum comme support de ce tutoriel.

Une fois vos problèmes réglés, j'effectuerais les éventuelles modifications au tutoriel.

http://www.siteduzero.com/forum-83-485 [...] statique.html
 
Hors ligne alidegwada # Posté le 01/02/2010 à 21:22:20
Avatar
Flux RSS

Ville : Les abymes
Pays : Guadeloupe

mais franchemt je dit bravo

Citation : Arthur Schopenhauer
En métaphysique rien n'est sûr, sauf la migraine qui en est le prix


Code : C++
1
2
3
4
5
6
7
8
9
#include <iostream>

using namespsace std;

int main()
{
    system("PAUSE");
    return 0;
}


Code : PHP
1
2
3
<?php
    echo "Hello word !";
?>



Userbar3J'en suis trop fier
Image utilisateur
Image utilisateur
Image utilisateur
Image utilisateur

 
Hors ligne Misterjn # Posté le 02/02/2010 à 12:00:14
Créateur de My-Cook.fr
Avatar

Études : Université de Dijon

Bizarre, j'avais cru comprendre qu'à la différence de la licence GPL, la licence LGPL permettait au créateur du programme Qt de rester pleinement propriétaire du code. Pour moi cela signifie qu'on n'a pas l'autorisation d'en faire commerce, mais qu'on a le droit de garder secret son code.

Voyez plutôt : Wikipedia : licence LGPL :-°
 
Hors ligne spider-mario # Posté le 02/02/2010 à 19:02:10
Avatar

Ville : Montigny-lès-cormeilles
Pays : France métropolitaine
Études : INSA Rouen

Que ce soit avec la GPL ou la LGPL, tu es propriétaire du code.

Avec la GPL, si tu distribues l'exécutable, tu dois aussi distribuer le code source, mais tu en restes propriétaire, même si d'autres peuvent le modifier et le redistribuer.
Et tu peux vendre un programme sous GPL, même si ça n'a que peu d'intérêt puisque l'acheteur peut à son tour le redistribuer gratuitement.

Avec la LGPL, dans le cas d'un programme lié dynamiquement à Qt, tu peux t'affranchir de distribuer ton code source, à l'exception des modifications que tu auraient apportées à la bibliothèque elle-même, et tu as parfaitement le droit de faire commerce de ton programme (et même d'y inclure une protection anti-copie).
Hors ligne Misterjn # Posté le 03/02/2010 à 14:05:43
Créateur de My-Cook.fr
Avatar

Études : Université de Dijon

Merci pour ces spécifications. Mais ne doit-on pas acheter une licence commerciale de Qt pour en faire commerce ?
 
Hors ligne spider-mario # Posté le 03/02/2010 à 14:30:10
Avatar

Ville : Montigny-lès-cormeilles
Pays : France métropolitaine
Études : INSA Rouen

La license commerciale te permet de lier ton application statiquement à Qt et de garder ton code.
Elle permet également d'apporter des modifications à Qt sans devoir les partager.

Pour commercialiser une application utilisant Qt et en garder le code source, tant qu'elle est liée dynamiquement, la LGPL suffit.
Hors ligne zangre01 # Posté le 17/02/2010 à 18:59:35
qui peu arrete le temps

Salut
Moi je trouve que ton tuto il est tres bien et en plus tu as envoyer du nouveau moi j'avais même pas la tête a la compilation en mode release encore moin des outils comme strip qui élimine le petit code inutile et ton fameux programme qui réduit complètement la taille de l'exécutable de c'est genial. Vive le siteduzero pour ces magnifiques tuto.

chacun pour soi DIEU pour tout...
l'union fait TOUJOURS la force...
un voyage de 100Km commence TOUJOURS par 1m...
tout est possible dans la vie sauf ARRETER le temps...
 
Hors ligne Enzbotte # Posté le 26/02/2010 à 17:13:46

Depuis quand QThread est un widget? J'y ai vraiment cru un instant....
Hors ligne thezapper602 # Posté le 03/04/2010 à 16:04:15
Accro de Minecraft
Avatar

Ville : Repentigny
Pays : Canada

Est-ce que c'est normal que ce soit aussi long? :(

4 heures et demie, disons que c'est beaucoup. On dirait presque que l'on recompile Qt au complet!
Hors ligne *Baby* # Posté le 03/04/2010 à 16:13:09
Avatar

Études : INSA Strasbourg

Tout à fait normal, la compilation prend du temps.
 
Hors ligne slimIT # Posté le 25/04/2010 à 20:46:49

Ville : Ariana
Pays : Tunisie

je ne peux plus utiliser Qt Creator pour compiler et avec compilation en ligne de commande mon application est très grande (152 Mo) et elle ne peut pas se connecter à la base de donnée (SQLITE) alors que tout marchait très bien. Merci.

Take a look at Truth Seekers. It can help you for the quest.
 
Hors ligne sbeex # Posté le 02/06/2010 à 18:28:17
Avatar
Flux RSS

Salut,
tout d'abords, merci ! Car grâce a ton tuto j'ai réussi à me débarasser des x dlls et ne passer qu'à 2 ce qui me convient beaucoup mieux !

Par contre, au niveau de l'ordre des explications, c'est assez difficile car pour ma part j'ai directement installer une 2e version de Qt puisque tu dis que c'est mieux. Mais ensuite tout en bas du tuto on s'aperçoit que tu présente comment faire cela... donc je pense que tu devrais présenter cela tout en haut plutôt ! Et guider l'utilisateur pas à pas dans l'ordre logique des choses.

(C'est qu'une opinion)

Mais sinon vraiment super la preuve je l'ai mis dans mes favoris :D


Image utilisateur
Image utilisateur


Image utilisateur
 
Hors ligne Terbaddo # Posté le 29/07/2010 à 00:09:15
Stallman hater
Avatar

Ville : Garges-lès-gonesse
Pays : France métropolitaine

Il est super le "Widget" QThread ^^

Bon, 15/20 car j'utilise pas Windows.
 
Hors ligne Kisuni # Posté le 29/08/2010 à 18:54:49

Avis : Très bon

Très bon tutoriel, terriblement utile !

Deux petites choses à ajouter :
- en version 4.6.2 ça semble marcher très bien.
- pour vous affranchir de la libgcc_s_dw2-1.dll il suffit d'ajouter ceci dans votre fichier .pro :
Citation : Fichier pro
win32 {
QMAKE_LFLAGS += -static-libgcc
}
Hors ligne spider-mario # Posté le 05/09/2010 à 15:03:26
Avatar

Ville : Montigny-lès-cormeilles
Pays : France métropolitaine
Études : INSA Rouen

Citation : thezapper602
On dirait presque que l'on recompile Qt au complet!

C’est le cas. ;)
Hors ligne Clowst # Posté le 08/10/2010 à 10:40:01

Avis : Très bon

Études : BTS IG Lyon

Cela fonctionne toujours pour la 4.7 ? (ca à bugé chez moi, j'ai du désinstaller & réinstaller complétement Qt)
Hors ligne Dark Ghost # Posté le 14/01/2011 à 02:09:54
NanoVoxel
Avatar
Flux RSS

Ville : Arles
Pays : France métropolitaine
Études : IUT de Provence, site d'Arles

Merci beaucoup pour ce tuto qui m'a bien aidé ! :)
Pour info j'ai Qt 4.7.1 (et ça a très bien marché) mais par contre impossible de trouver "-mthreads" dans le makefile (ça ne me gène pas pour autant) ! :o

Voili voilou, bonne continuation !


PS: Merci à Kisuni pour la libgcc_s_dw2-1.dll (il serait intéressant de rajouter ceci dans le tutoriel (en annexe)).
 
Hors ligne Kisuni # Posté le 15/07/2011 à 17:21:18

Avis : Très bon

4.7.1 c'est validé ? Je vais migrer alors.
On sait ce qu'il en est pour la 4.7.3 ? Quelqu'un a fait l'essai ?
Hors ligne lecampeur # Posté le 12/08/2011 à 13:37:53
Avatar

Moi j'ai compiler la version 4.7.3, sa compile mais j'ai encore des dépendance avec les dlls

Maj: C'est bon, j'ai recompiler qt, et sa fonctionne parfaitement
Hors ligne tifil # Posté le 10/12/2011 à 16:19:27

J'ai tout bien suivi, mais j'ai encore une dépendance dans des dll, notamment: QtCore4.dll

Donc, comment y remédier ???

Merci d'avance.
Pour accéder à cette section
Connectez-vous !
connexion_rpx