IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Explication sur taille énorme d'un exécutable


Sujet :

Qt

  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut Explication sur taille énorme d'un exécutable
    J'ai une application Qt 4.3 developpée sous Windows et je l'ai portée sou Mac OS X et elle fonctionne trés bien sur tous les niveaux. Juste j'ai une remarque à faire concerant la taille de mon exécutable, elle est 120 Mo . C'est énorme pour une exécutable. C'est vrai que c'est une application qui utlise plusieurs Framework Qt et autre pour Mac. En plus je la compile pour tourner sous les 2 architechtures intel et PPC, mais je dois poser l'exécutable à des client vraiment pour téléchargement mais même compressé (25 Mo) c'est trop.
    Est ce que quelqu'un peut m'indiquer d'ou provient cette taille énorme et si possibilté comment la réduire.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut.
    N'aurais tu pas linké Qt en static??
    as tu compilé une version release?

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    non, la taille de 120 Mo est aprés compilation en mode release pour les 2 architechtures intel et ppc. Aprés je dois le linker aux framework et plugins en utlisant deployqt et la taille devient 155 Mo.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    cette taille est sous windoxs et mac?

  5. #5
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    La taille de l'exécutable sous Windows est 4 Mo et sous Mac est de 120 Mo aprés compilation en mode release et avant de faire les link necessaires.

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bonjour,

    C'est effectivement étrange...
    Je fais exactement pareil : Appli compilée pour ppc & intel et mes binaires (exécutable Qt + lib persos Qt) faut 5Mo... L'appli totale avec les frameworks & lib dynamiques externes monte à 40Mo dont quasiment 30Mo rien que les frameworks de Qt (Core + GUI + Network).

    Es-tu sûr de lier Qt en dynamique ? Ce qui expliquerait effectivement un sur-poids... Si ce n'est pas Qt, tu dois sûrement lier d'autres lib en static... Sinon tu as une application de fou !!! (et qui devrait sûrement être séparées en une multitudes de petites bibliothèques dynamiques)
    Enfin, ce n'est que mon avis...

  7. #7
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    La seule explication semble en effet que tu lies statiquement à une ou plusieurs bibliothèques, et probablement Qt.

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Citation Envoyé par Alp Voir le message
    La seule explication semble en effet que tu lies dynamiquement à une ou plusieurs bibliothèques, et probablement Qt.
    Euh... Non ! Statiquement !?

  9. #9
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Oui, tout à fait, c'est ce que j'ai voulu dire



    Edit : c'est corrigé

  10. #10
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    Bon au stade ou j'ai eu les 120 Mo, je n'ai pas encore lier l'application à Qt. C'est aprés que j'effectue cette opération avec l'outil deployqt et je crois que cet outil permet une liaison dynamique.
    A part ça, c'est que j'utlise quelque framework externes telle System.configuration ou IOKit mais je croi que cela n'explique cette taille énorme.

  11. #11
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Tu devrais dans ce cas regarder la taille des versions statiques de tes autres bibliothèques. Si elles sont grosses ça explique tout. Car à vrai dire je ne vois pas d'autres raisons qu'une liaison statique de grosses bibliothèques

  12. #12
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Pour être certain de voir quelles bibliothèques tu utilises en dynamique (et donc celles qui sont statiques), utilise la commande otool -L nom_de_l_executable
    et tu obtiendras la liste de toutes les bibliothèques dynamiques (assez utile d'ailleurs pour savoir si tu as correctement lié tes lib dynamiques pour un déploiement Mac)

  13. #13
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Yep, probleme constate sous Mac OS X... la faute a gcc sous Mac qui genere des exe de taille ahurissante (nous on avait atteint le Go avec Qt3...). Solution : me souviens plus Essaye de faire un petit stip...

  14. #14
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    Je crois que Aurelien.Regat-Barrel a raison car j'utlise XCode et gcc 4.0 pour compiler mon application. Je n'ai meme pas essayé de linker aux frameword Qt ou autre et j'ai 120 Mo de taille en mode release. Mais lorsque j'utilise la commande Strip, la taille devien 6.5 Mo !!!!!. Vraiment je ne sais pas ce qu'a fait cette commande. Mais es ce que cela n'affecte pas le fonctionnement de l'application.
    Merci pour tout le monde.

  15. #15
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par mercure07 Voir le message
    Vraiment je ne sais pas ce qu'a fait cette commande. Mais es ce que cela n'affecte pas le fonctionnement de l'application.
    Elle supprime les symboles de debogage, ce qui n'altere en effet pas le fonctionnement normal, mais peut perturber le debogage. Mais comme en Release on s'en fiche un peu...

  16. #16
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    Merci pour cet eclairicement, tu as raisonje vais livrer une version release donc vraiment la commande strip fait trés bien l'affaire.
    Merci a tout le monde pour leur aide.

  17. #17
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3

Discussions similaires

  1. explications sur la norme X 400
    Par redskin dans le forum Réseau
    Réponses: 0
    Dernier message: 28/12/2010, 11h38
  2. Explication sur plan d'exécution
    Par gjaisp dans le forum Oracle
    Réponses: 1
    Dernier message: 26/08/2010, 13h33
  3. vb.net : besoin d'explication sur l'exécution de NtBackup
    Par 1coni dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/05/2006, 16h55
  4. Réponses: 28
    Dernier message: 18/08/2003, 11h54
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo