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

Discussion :

Compilation pour différentes machines

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Compilation pour différentes machines
    Bonjour,

    Je viens de réaliser une appli Qt4.5, lorsque je compile celle-ci sur ma machine et que je l'exécute tout marche.
    J'aimerais savoir s'il était possible de simplement copier le répertoire compilé afin de l'exécuter sur une autre machine.
    L'OS de compilation est Red Hat et la deuxième machine aussi sous Red Hat, mais une version antérieure. Je précise également que cette deuxième machine n'a pas Qt4.5 d'installer.

    *edit* : Lors de l'exécution du programme sous la deuxième machine, le terminal me renvoie l'erreur : symbol lookup error

  2. #2
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    J'avais déjà installé une version compilée une seule fois de Qt sur plusieurs machines (Mandriva), mais les pc étaient vraiment très proches niveau configuration. Donc c'est un peu au petit bonheur la chance, si tu as des erreurs je crois qu'il vaut mieux que tu recompiles Qt là où tu veux l'installer.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Hmmm pas très pratique tout ça :-s . Surtout si on veut "distribuer l'appli"...

  4. #4
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Ah autant pour moi je pensais que tu parlais de l'installation de Qt et pas d'une application à toi. A ce niveau là je ne saurais te dire, c'est un peu le problème avec Linux il y a beaucoup de config différentes, je sais que pour utiliser des librairies etc c'était pas simple...
    Il faut déjà vérifier que le pc cible ait les librairies Qt, et sinon soit les fournir avec ton appli soit les faire installer.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Et comment ça se passe pour les fournir avec l'appli?

  6. #6
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Ce n'est pas conseillé car les paquets systèmes sont mis à jour contrairement à des librairies que tu fournis directement par fichier avec ton appli.

    L'idéal étant encore de faire installer par les dépendances toutes les librairies nécessaires à l'installation de ton appli, mais là je ne peux pas t'aider, j'imagine qu'il faut créer des paquets.

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Bin déjà je te remercie pour ton assistance ça m'aide déjà beaucoup

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Je n'ai pas d'expérience de portage sous unix, mais à mon avis ça diffère peu de windows.

    Si tu copies tous les librairies dont ton application a besoin dans le repertoire de ton executable, et que tu copies le tout, "JE" pense que ça devrait marcher (aucune expérience je l'ai dit). Attention à ne pas oublier de dll (c'est le grand problème), notamment celle(s) de ton compilateur (je ne connais pas le tien).

    Après, il est vrai que tes lib ne seront pas vraiment utilisés comme des librairies dynamiques, puisque leur emplacement limitera leur utilisation à ton application. Pour la même raison, elles ne seront pas mises à jour, mais ce n'est pas bien grave puisque ton application ne le sera pas. Et si elle l'est, tu n'auras qu'à recopier les lib à chaque fois.

    Après, en effet pour garantir la compatibilité du nouveau support, il faudrait recompiler Qt sur ce dernier, mais bon, les architectures et les OS se sont grandement uniformiser.

    Pour conclure : tu peux exporter cela simplement, si le système est identique ou proche. Ce n'est pas très propre, mais ça marchera probablement. Si tu veux faire propre, il faudrait mettre les lib dans le repértoire approprié "/etc/..." et les ajouter au path.

    G.

    PS : Ca se trouve ca ne marche pas du tout de cette façon, mais bon, il me semble que la philosophie des librairies partagées soient les mêmes sous Windows ou Unix.

  9. #9
    Membre averti

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Points : 356
    Points
    356
    Par défaut
    mon avis ça diffère peu de windows.
    C'est pas faux sans être vrai...

    Disons que de la même manière que Windows, tu peux intégrer les librairies Qt à l'intérieur de l'application. Il faut pour cela que Qt soit compilé en statique et ainsi lors de l'éditions des liens de l'application, les librairies Qt et l'exécutable ne feront qu'un.
    L'étape indispensable est donc la re-compilation de Qt en mode statique. Cette solution est à prendre avec des pincettes car Qt dépends aussi d'autre librairies. Si les bonnes versions de celles ci ne sont pas présentes sur la machine cible, le problème sera le même...

    Ce lien (la doc, toujours la doc...) explique la demarche :
    http://qt.developpez.com/doc/4.5/deployment-x11/

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Tu me la lis et tu me fais un résumé merci...
    Allez j'suis parti pour mon replonger dans la doc... Youhouu !

    Mais merci

  11. #11
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 919
    Points : 220 492
    Points
    220 492
    Billets dans le blog
    127
    Par défaut
    Bonjour,

    Je ne peux pas aider à 100% mais je sais juste, qu'il ne faut juste copier le binaire ( enfin l'executable ) + les ressources.
    Comme on l'a dit précédemment, c'est mieux d'éviter de copier les .so ( fichier de bibliothèques ) à chaque fois. Mais du coup ça oblige l'utilisateur d'installer les paquets de QT sur sa machine. ( Pas tous les paquets, genre pas besoin des paquets de développement )
    Genre sous une ubuntu / debian ( enfin tout ce qui marche au .deb ) il faudrai juste installer
    libqt4-core pour que ça marche ( et les dépandances :p )

Discussions similaires

  1. Compiler pour une machine x86 depuis une x64_86
    Par RPGamer dans le forum Embarqué
    Réponses: 1
    Dernier message: 17/03/2014, 19h40
  2. compiler pour plusieurs machine
    Par WLCasey dans le forum Linux
    Réponses: 1
    Dernier message: 05/10/2011, 19h28
  3. Compilation C++ différente sur 2 machines avec VC++6
    Par Thrud dans le forum Visual C++
    Réponses: 3
    Dernier message: 27/01/2010, 14h57
  4. Réponses: 2
    Dernier message: 15/05/2004, 19h33
  5. Compiler pour msdos(5-6)
    Par jalfonsi dans le forum Choisir un environnement de développement
    Réponses: 3
    Dernier message: 05/04/2004, 23h05

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