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

Plateformes Discussion :

Cross-compilation Qt de Windows à Linux [Windows]


Sujet :

Plateformes

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 67
    Points : 42
    Points
    42
    Par défaut Cross-compilation Qt de Windows à Linux
    Bonjour,

    dans le cadre d'un projet, je dois créer des applications avec Qt (sous windows) et les compilé sous windows pour être utilisable sous linux.
    Pourquoi cela? Car en fait, les applications découleront d'un IDE que j'aurai conçu et le code compilé sera envoyé vers un serveur distant tournant sous linux qui se chargera d'exécuter l'application. En compilant directement sous windows, j'évite ainsi une éventuel surcharge du serveur (qui devrait compiler chaque application reçue et envoyer les messages debug... vraiment lourd).
    Alors pour ca, j'ai essayé la cross compilation avec cygwin (http://metamod-p.sourceforge.net/cro...for.linux.html). Pour compiler des applications simple (du style un simple "hello world" en console) ca marche nickel, mais lorsque je veux compiler le framework Qt (et ce après avoir fait tout les links vers mes compilateurs de cross-compilation dans les mkspecs de Qt), je n'arrive même pas à générer le fichier qmake, en effet, lors du configure, un nombre important de fichier ".o" ne sont pas reconnu.

    Voilà, j'espère avoir été assez clair, merci!

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Je présumes que tu as donc deux versions de Gcc sur ton ordinateur, une (native ou tournant sous cygwin) permettant de créer des applications windows, et l'autre permettant de créer des applications linux (le compilateur croisé).

    Il y a de fortes chances (même si je ne fais que l'espérer) que l'une puisse être simplement invoquée en utilisant les noms gcc, ar, g++ ou ld, et que l'autre doive être invoquée en utilisant les noms i686-pc-linux, ou que tu aies, tout simplement, deux dossiers clairement séparés pour chacune des versions.

    Tu peux essayer de préciser le dossier dans lequel se trouvent les différents exécutable des collections Gcc et binutils dans la variable PATH et de définir (au minimum) les variables:
    • CC : le nom sous lequel est connu le compilateur C (gcc ou i686-pc-linux-gcc)
    • CXX : le nom sous lequel est connu le compilateur C++ (g++ ou i686-pc-linux-g++)
    • AR : le nom sous lequel est connu l'archiveur ar (ar ou i686-pc-linux-ar)
    • LD : le nom sous lequel est connu l'éditeur de liens ld (ld ou i686-pc-linux-ld)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 67
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Salut,

    Je présumes que tu as donc deux versions de Gcc sur ton ordinateur, une (native ou tournant sous cygwin) permettant de créer des applications windows, et l'autre permettant de créer des applications linux (le compilateur croisé).

    Il y a de fortes chances (même si je ne fais que l'espérer) que l'une puisse être simplement invoquée en utilisant les noms gcc, ar, g++ ou ld, et que l'autre doive être invoquée en utilisant les noms i686-pc-linux, ou que tu aies, tout simplement, deux dossiers clairement séparés pour chacune des versions.

    Tu peux essayer de préciser le dossier dans lequel se trouvent les différents exécutable des collections Gcc et binutils dans la variable PATH et de définir (au minimum) les variables:
    • CC : le nom sous lequel est connu le compilateur C (gcc ou i686-pc-linux-gcc)
    • CXX : le nom sous lequel est connu le compilateur C++ (g++ ou i686-pc-linux-g++)
    • AR : le nom sous lequel est connu l'archiveur ar (ar ou i686-pc-linux-ar)
    • LD : le nom sous lequel est connu l'éditeur de liens ld (ld ou i686-pc-linux-ld)
    j'ai fait ça, dans le /bin de mon cygwin, j'ai rajouté tout les cross-compiler et je les ai renommé de façon à être plus facilement utilisable (genre "cross-gcc") et j'ai fait les link dans mes mkspecs de Qt vers eux. J'ai remplacé minutieusement chaque nom et j'invoque clairement mon fichier quand je fais un ./configure de mon répertoire Qt (./configure -platform linux-g++)

    ps: je vois que tu habites Musson, si c'est celui de Gaume, nous habitons dans le même village ^^

  5. #5
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 669
    Points : 188 683
    Points
    188 683
    Par défaut
    Salut,

    Petite précision :
    -platform XXX : la plateforme sur laquelle qmake, uic et les autres seront lancés ;
    -xplatform XXX : la plateforme pour laquelle tout sera compilé, sur laquelle les binaires seront exécutés.

    Dans le cas d'une xcompil de win vers lin, ça donne :
    configure.exe -platform win32-g++ -xplatform linux-g++

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 67
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    Salut,

    Petite précision :
    -platform XXX : la plateforme sur laquelle qmake, uic et les autres seront lancés ;
    -xplatform XXX : la plateforme pour laquelle tout sera compilé, sur laquelle les binaires seront exécutés.

    Dans le cas d'une xcompil de win vers lin, ça donne :
    configure.exe -platform win32-g++ -xplatform linux-g++

    Merci pour cette précision! je viens de réussir à faire le configure! je viens de lancer le make, en espérant que ça marche!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lazarus] Cross-compiler pour MacOS avec Linux
    Par fiens dans le forum Lazarus
    Réponses: 0
    Dernier message: 29/03/2009, 19h10
  2. Réponses: 6
    Dernier message: 17/12/2008, 02h01
  3. Cross Compilation Linux Vers Windows
    Par allergen dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 03/09/2007, 11h49
  4. Cross compilation d'application windows
    Par black is beautiful dans le forum Linux
    Réponses: 2
    Dernier message: 09/05/2007, 16h48
  5. [Free Pascal] Cross-compiling Windows -> Linux : comment faire ?
    Par zafo dans le forum Free Pascal
    Réponses: 5
    Dernier message: 01/03/2007, 12h43

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