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 :

Différencier un binaire compilé en 32 ou 64 bits


Sujet :

Plateformes

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Points : 36
    Points
    36
    Par défaut Différencier un binaire compilé en 32 ou 64 bits
    Bonjour,

    Tout d'abord, je tiens à signaler que j'essaye de m'initier au différentes possibilités de compilation, il faut donc être indulgent sur mon manque de connaissance, car je débute ...

    Je compile avec mingw des applications basés sur Qt. A priori, la version de Qt 5.1 ne fonctionne qu'en version 32bit avec Mingw comme compilatuer, en tout cas les *.dll installées avec la version mingw télécharger sont à priori des *.dll en 32 bits.

    Comme je souhaite compiler des bibliothèques avec mingw (4.72) pour être compatible avec Qt, il faut que je fasse gaffe à les compiler en 32bits et non en 64bits.

    Donc, j'ai deux questions :

    - comment contrôle-t-on la version 32bit ou 64 bit compilation avec mingw (depuis Msys ou depuis l'invite de commande de windows) ?
    -existe-t-il un moyen de vérifier la version 32bit ou 64bit des *.dll ou des *.exe ?

    Si vous pouvez m'aider .... et n'hésiter pas à me corriger si je semble me plante dans la compréhension dans le principe de compilation (si vous connaissez des cours en lignes, je suis preneur).

    Merci

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 347
    Points : 42 814
    Points
    42 814
    Par défaut 32 ou 64 bits
    tu peux avec CFF explorer il te dira si le fichier est PE 32 ou 64 bits

    Pour l'autre point, regardes cette discussion :

    http://www.developpez.net/forums/d13...mingw-64-bits/

    Si ton appli ne nécessite pas de performances, compiles en 32 bits, ce sera compatible avec plus de postes.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Merci pour la réponse, CFF explorer est parfait pour identifier la version des DLL ou des exe.

    Sinon, pour l'autre point peut être que je n'était pas assez clair.

    En fait je souhaite compiler en 32 bit alors que mon environnement est en 64 bits, tout simplement par ce que les DLL de Qt sont en 32 bits, et je veux que les bibliothèque que je vais compiler soit compatible avec Qt 32 bits.

    Suivant les bibliothèque, je lance les compilation depuis l'invite de commande ou depuis Msys. J'ai réussi à compiler boost en 32 bits et j'ai testé avec Qt, ça marche. Par contre pour un certains nombre de bibliothèque, je n'arrive pas à imposer la compilation en 32 bits ...

    Je me demande alors où est-ce que l'on impose cette compilation ?

    makefile ? lors de l'appel de mingw32-make sous l'incite de commande ou de make sous Msys ?

    Je vais continuer à faire des essais et je vais pouvoir tester avec CFF explorer... mais si vous avez des infos je suis preneur.

    Pour les performances, il est clair que j'en ai besoin mais uniquement en calculs parallèles, mais pas vraiment en mémoire ou du moins pas encore. Est que la version 64 bits me fera gagner en vitesse de calcul parallèles ? J'utilise Qtconcurrent et je pense que je vais essayer boost pour voir si je gagne en performance.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    Si vous compilez avec MinGW, à part d'avoir le support spécifique pour le 64 bits, vous compilez toujours en 32 bits.

    Avec GCC, il y a une option -m32 ou -m64 pour choisir.

    Avec le compilateur de Visual Studio, je ne suis pas très sur, même si dans Visual Studio ils proposent deux cibles (une 32 et une 64 bits).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    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 609
    Points : 188 584
    Points
    188 584
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Avec le compilateur de Visual Studio, je ne suis pas très sur, même si dans Visual Studio ils proposent deux cibles (une 32 et une 64 bits).
    Ça dépend du compilateur utilisé : VC propose une série d'invites de commandes préconfigurés dans le menu démarrer, un par cible (x86, x64, Itanium). Ce sont des exécutables différents qui s'occupent de chaque plateforme, pas de drapeau à passer. Pour vérifier la version utilisée actuellement,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    …>cl
    Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for Itanium
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    usage: cl [ option... ] filename... [ /link linkoption... ]
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    me basant sur gcc, je doit donc passer par les options m32 ou m64, mais je voudrais être sûr de l'endroit où insérer cette options :
    - dans le makefile, et alors associé à quelle variable (CFLAG ou CXXFLAG ?) ;
    - après mingw32-make si je lance la compil depuis l'invite de commande ?
    - après ./config ou après make quand je passe via MSys ?


    En tout cas merci de vos réponses.

Discussions similaires

  1. Problème de compilation du C en 16 bits binaire « à plat »
    Par jud83 dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 25/07/2009, 03h25
  2. Conversion de binaires en tableau d'entiers 16 bits
    Par Donnie Darcko dans le forum Débuter
    Réponses: 4
    Dernier message: 24/03/2008, 14h29
  3. Réponses: 6
    Dernier message: 11/01/2008, 11h23
  4. Compilation d'une DLL 16 bits
    Par Lolane dans le forum Visual C++
    Réponses: 1
    Dernier message: 13/07/2007, 15h05
  5. Ecrire dans un fichier binaire en inversant les poids des bits
    Par zejo63 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 09/07/2007, 16h11

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