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

C++ Discussion :

Comment compiler en 64 bits?


Sujet :

C++

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut Comment compiler en 64 bits?
    Bonjour

    Voilà, j'ai un bon vieux Pentium4 sous Windows XP 32 bits.
    Mais je voudrais quand-même compiler des benchs en 64 bits, pour les tester avec l'ordi d'un copain.

    Est-ce possible de compiler d'une manière ou d'une autre en 64 bits sur une machine 32 bits?
    Où trouver un compilateur 64 bits?

    En particulier GCC MinGW qui aurait pu faire l'affaire, me dit que l'option "-m64" n'est pas disponible.

    (Ce qui m'intéresse surtout, c'est de voir si les 16 registres SSE des processeurs 64 bits permettent de doper les performances par rapport aux 8 registres des procs 32 bits)

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Il y a moyen, mais tu dois te palucher toi même la compilation de gcc pour en faire un compilateur croisé (autrement dit un compilateur qui a pour cible une architecture différente de celle sur laquelle il s'exécute).

    (En passant, je n'ai aucune idée de la facilité avec laquelle c'est faisable avec les ports Windows; ni même si gcc supporte déjà le 64 bits sous Windows).

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut
    Merci.
    C'est ce que je craignais.
    Tu connais un bon tutorial pour compiler GCC en 64 bits pour windows, un tuto du genre "pour les nuls" car c'est le genre de truc qui ne marche jamais du premier coup, voir jamais...

    Question subsidiaire, qu'est ce qu'il y a comme compilo C++ pour Windows 64? GCC?
    Pour voir si je peux l'installer sur l'ordi du copain.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Intel C++ ?

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Visual C++ fait aussi du 64.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut
    1) J'ai une version 64bits un peu vielle (~3 ans) du compilateur Intel. L'installateur prévient qu'aucun SDK 64 bits n'est trouvé, je l'installe quand même. Mais aucune trace du compilo dans Visual Studio et je n'arrive même pas à le démarrer en ligne de commande.
    2) J'ai la version Express de Visual 2008. Ca me suffisait amplement jusqu'à présent. La version express ne contient pas de compilateur 64 bits.
    La version payante de Visual permet elle de compiler en 64 bits, même sous XP 32?

  7. #7
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par Charlemagne Voir le message
    La version payante de Visual permet elle de compiler en 64 bits, même sous XP 32?
    Jamais essayé, au boulot, on bosse en 32 sur du 3é et en 64 sur du 64. Par contre, j'ai vu : http://www.ericbissonnette.com/2008/...5-pour-64.html
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Merci pour la piste intéressante.

    J'ai essayé avec le SDK que j'ai actuellement (for Windows Server 2003 R2), je n'ai pas encore vérifier si c'était le plus récent, c'était le tout dernier en tout cas en janvier quand j'ai téléchargé en même temps VC2008 Express.
    Les commandes ne sont pas tout à fait les mêmes que pour le lien que tu donnes, mais je pense avoir trouvé les correspondances.

    Par contre je ne sais pas quoi faire après avoir démarrer VC2008 Express de la façon expliquée pour créer un projet 64bits.
    Je vais essayé de rechercher un peu, mais si qqn a des suggestions...

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Salut.

    Pour faire simple, compiler en 64 bits avec mingw est impossible. Pour la version compliqué il suffit de prendre le deuxième résultat dans google à ce sujet: http://marc.info/?t=115817333500003&r=1&w=4

  10. #10
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Je viens juste de tester, on peut bien compilier en 64Bit avec VS (ici VS2008 Pro, je sais pas pour les version express) à partir d'un OS 32 bit (ici WindowsXp).

    J'ai fait un hello world pour tester, il suffit de changer la machine cible dans la configuration de la solution. Je ne peux pas l'executer en 64 bit et un message me le confirme bien quand je tente.

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Je viens juste de tester, on peut bien compilier en 64Bit avec VS (ici VS2008 Pro, je sais pas pour les version express) à partir d'un OS 32 bit (ici WindowsXp).

    J'ai fait un hello world pour tester, il suffit de changer la machine cible dans la configuration de la solution. Je ne peux pas l'executer en 64 bit et un message me le confirme bien quand je tente.
    Le pb c'est que je n'ai que "Win32" comme cible possible sous Express.
    J'avais vu un site comparatif des différences entre les diverses versions de Visual. D'après le tableau, VCExpress n'a pas le 64bits. C'est pour ça que la piste de Loïc est intéressante, mais je n'arrive pas à la suivre...

  12. #12

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Il ne faut pas confondre l'"IDE" Visual C++ Express, qui est peut-être, oh monde cruel, dénué de la sainte case à cocher, et le compilateur Visual C++ qui, à ma connaissance, n'a aucune limitation (quoi qu'il faut peut-être s'amuser à l'installer indépendamment de l'IDE + installer le SDK + tout faire en ligne de commande ça va de soi).

  14. #14
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Charlemagne > Ce n'est pas par défaut dans le choix de la plateforme : il faut que ta configuration de projet le permette.

    Pour cela, va dans le Configuration Manager (j'ai une version anglaise), puis là tu as le choix dans Active Configuration Platform. Soit tu choisis une configuration existante, soit tu mets multiplatform auquel cas tu peux préciser pour chaque projet pour quelle plateforme il va être compilé.
    Par défaut tu n'as le choix que de la plateforme de ton OS et des plateformes déjà définies par les projets (par exemple si tu récupère une lib qui as déjà le choix 64bit, tu l'aura automatiquement dans la liste des plateformes).
    Si tu n'as pas 64Bits là, tu as juste a le rajouter en choisissant la valeur "<New...>" comme plateforme, et là tu pourras ajouter 64Bits (en copiant les autres paramettres à partir de la config d'une plateforme déjà existante, par exemple 32Bit).

    Je sais pas si c'est valide pour express. Dans tous les cas, comme dit zais_ethael, le compilo lui sait faire la compilation 64bit.

  15. #15
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Pour cela, va dans le Configuration Manager (j'ai une version anglaise), puis là tu as le choix dans Active Configuration Platform. Soit tu choisis une configuration existante, soit tu mets multiplatform auquel cas tu peux préciser pour chaque projet pour quelle plateforme il va être compilé.
    Par défaut tu n'as le choix que de la plateforme de ton OS et des plateformes déjà définies par les projets (par exemple si tu récupère une lib qui as déjà le choix 64bit, tu l'aura automatiquement dans la liste des plateformes).
    Si tu n'as pas 64Bits là, tu as juste a le rajouter en choisissant la valeur "<New...>" comme plateforme, et là tu pourras ajouter 64Bits (en copiant les autres paramettres à partir de la config d'une plateforme déjà existante, par exemple 32Bit).
    Je comprends toujours pas. J'ai fait une nouvelle plateforme "64bits". Et puis, comment le compilo saura t'il qu'il faut compiler en 64 bits?

    Sinon, j'ai essayé comme sur le blog indiqué par Loïc.
    - SDK-> XPx64 environnement
    - "VCExpress /useenv" pour démarrer Visual
    - créer et compiler un petit projet "hello world"
    mais j'obtiens les erreurs suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    1>cl : Command line warning D9007 : '/Gm' requires '/Zi'; option ignored
    1>cl : Command line warning D9002 : ignoring unknown option '/ZI'
    1>main.cpp
    1>Linking...
    1>LINK : warning LNK4044: unrecognized option '/MANIFESTUAC:level='asInvoker' uiAccess='false''; ignored
    1>LINK : warning LNK4044: unrecognized option '/DYNAMICBASE'; ignored
    1>LINK : warning LNK4044: unrecognized option '/NXCOMPAT'; ignored
    1>.\Debug\main.obj : fatal error LNK1112: module machine type 'AMD64' conflicts with target machine type 'X86'
    1>Build log was saved at "file://c:.....\Debug\BuildLog.htm"
    1>test3 - 1 error(s), 5 warning(s)
    Des idées?

  16. #16
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Quelle version express utilises tu ? Les truc /dynamicbase ont été je crois introduits en 2008.

    Pour l'erreur principale (les machine types), il serait intéressant d'avoir la ligne de commande complète de la compilation.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  17. #17
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Quelle version express utilises tu ? Les truc /dynamicbase ont été je crois introduits en 2008.

    Pour l'erreur principale (les machine types), il serait intéressant d'avoir la ligne de commande complète de la compilation.
    J'ai VC2008Express (mais j'ai également VC2005Express sauvegardé sur un DVD si y'a besoin)
    Je te posterai la ligne de commande ce soir (suis actuellement au boulot)

    Citation Envoyé par screetch
    http://sourceforge.net/projects/mingw-w64/
    Intéressant, le problème c'est que c'est la version 3.4.4 de GCC, il me faudrait au moins la 4.2 pour que mes benchs soient cohérents. (J'ai remarqué des progrès significatifs sur mes benchs avec les 4.2, 4.3).
    Je vais quand même faire un essai pour voir si ça compile bien en 64-bits.

  18. #18
    screetch
    Invité(e)
    Par défaut
    c'est la 4.4...

  19. #19
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut
    Citation Envoyé par screetch Voir le message
    c'est la 4.4...
    T'es sûr? j'aurais mal lu 3.4.4 hier soir? possible... j'étais fatigué. Je vérifierai.
    Je ne savais pas que la 4.4 était déjà sortie.
    Sinon, tu télécharges quel fichier sur le site de sourceforge? y'a tellement le choix...

  20. #20
    screetch
    Invité(e)
    Par défaut
    http://downloads.sourceforge.net/min...3&big_mirror=0

    c'est fait a partir des snapshots de la 4.4 datée du 12/08 (d'ou quelques bugs, a priori)

Discussions similaires

  1. Comment compiler en 64 bits avec gcc, -m64 ne marche pas.
    Par jeanlouis_lecodeur dans le forum GCC
    Réponses: 1
    Dernier message: 27/02/2008, 17h40
  2. [CR] Comment compiler un etat ?
    Par glachant dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 20/02/2004, 17h19
  3. Comment compiler un projet en ligne de commande ?
    Par mathieutlse dans le forum EDI
    Réponses: 3
    Dernier message: 11/07/2003, 13h32
  4. Réponses: 2
    Dernier message: 05/12/2002, 16h55

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