Comment compiler une application 64 bits à l'aide de Visual C ++ 2010 Express?

128

Existe-t-il un moyen simple de compiler une application 64 bits avec l'édition 32 bits de Visual C ++ 2010 Express? Quelles configurations, le cas échéant, sont nécessaires?

Nathan Osman
la source

Réponses:

181

Voici les instructions étape par étape:

  1. Téléchargez et installez le Kit de développement logiciel Windows version 7.1. Visual C ++ 2010 Express n'inclut pas de compilateur 64 bits, contrairement au SDK. Un lien vers le SDK: http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
  2. Modifiez la configuration de votre projet. Accédez aux propriétés de votre projet. En haut de la boîte de dialogue, il y aura un menu déroulant "Configuration". Assurez-vous que sélectionne «Toutes les configurations». Il y aura également un menu déroulant «Plateforme» qui lira «Win32». Enfin sur la droite il y a un bouton "Configuration Manager" - appuyez dessus. Dans la boîte de dialogue qui apparaît, recherchez votre projet, cliquez sur le menu déroulant Plate-forme, sélectionnez Nouveau, puis sélectionnez x64. Maintenant, changez le menu déroulant «Plate-forme de solution active» en «x64». Lorsque vous revenez à la boîte de dialogue Propriétés, la liste déroulante «Plate-forme» doit maintenant lire «x64».
  3. Enfin, modifiez votre ensemble d'outils. Dans le menu Propriétés de votre projet, sous Propriétés de configuration | Général, changez Platform Toolset de "v100" à "Windows7.1SDK".

Ces étapes ont fonctionné pour moi, de toute façon. Vous trouverez plus de détails sur l'étape 2 dans une référence de Microsoft mentionnée par une ancienne affiche: http://msdn.microsoft.com/en-us/library/9yb4317s.aspx .

Mat
la source
2
Félicitations - votre réponse vient de vous valoir 275 rep. Merci pour une réponse géniale!
Nathan Osman
J'ai Windows XP mais le SDK est pour Windows 7. Cela fonctionnera-t-il toujours?
0x499602D2
@ 0x499602D2: Je ne sais pas. J'espère que si les versions Visual C ++ et SDK étaient les mêmes, ce serait le cas. Est-ce que tu l'as essayé?
Matt
2
Cela n'a fonctionné pour moi qu'après l'installation des correctifs 3 et 4 mentionnés ici: stackoverflow.com/a/8334985/429873
Dmitry Trofimov
1
@Matt: tout cela fonctionne pour moi sur WinXP 64bit. Quelle est la raison de changer Platform Toolset en Win7.1SDK?
IgorStack
48

Les outils 64 bits ne sont pas disponibles sur Visual C ++ Express par défaut. Pour activer les outils 64 bits sur Visual C ++ Express, installez le Kit de développement logiciel (SDK) Windows en plus de Visual C ++ Express. Sinon, une erreur se produit lorsque vous essayez de configurer un projet pour cibler une plate-forme 64 bits à l'aide de Visual C ++ Express.

Comment: configurer des projets Visual C ++ pour cibler des plates-formes 64 bits

Réf: http://msdn.microsoft.com/en-us/library/9yb4317s.aspx

TU
la source
est-ce disponible pour VB 2010 Express?
Remus Rigo
Pour une raison quelconque, mon $ (WindowsSdkDir) ne semblait pas fonctionner correctement, mais une fois que j'ai ajouté manuellement les chemins absolus, cela a fonctionné un champion.
rogerdpack
5
Après avoir suivi les instructions, j'ai continué à obtenir des pages de propriétés vierges pour la plate-forme x64. J'ai dû installer la mise à jour des compilateurs ici . Plus d'informations sur KB2519277 .
kipkennedy
14

Et assurez-vous de télécharger le SDK Windows7 .1 , pas seulement celui de Windows 7. Cela m'a causé beaucoup de coups de tête.

Jamie Fristrom
la source
9

J'ai trouvé une étape importante à ajouter à cela - après avoir installé le SDK, accédez aux propriétés de votre projet et modifiez les propriétés de configuration-> Général-> Platform Toolset de v100 ou quoi que ce soit à Windows7.1SDK. Cela modifie $ (WindowsSdkDir) au bon endroit et semble résoudre d'autres difficultés que je rencontrais également.

Mat
la source
5

Notez que les compilateurs Visual C ++ sont supprimés lorsque vous mettez à niveau Visual Studio 2010 Professional ou Visual Studio 2010 Express vers Visual Studio 2010 SP1 si le SDK Windows v7.1 est installé.

Pour obtenir des instructions sur la résolution de ce problème, consultez l'article KB2519277 sur le site de support Microsoft.


la source
5
Ce serait mieux servi comme un commentaire car il ne répond pas réellement à la question à portée de main.
Security Hound
4

Téléchargez le SDK Windows, puis accédez à Affichage-> Propriétés-> Configuration Manager-> Active Solution Platform-> Nouveau-> x64.

duduong
la source
1
quel est le programme à exécuter? Je ne trouve aucun programme avec une "Vue" disponible
Stéphane Laurent
3

La programmation dans un environnement 64 bits est assez différente de celle dans un environnement 32 bits. Le code généré a une constitution d'assemblage totalement différente en code 32 et 64 bits, même les protocoles de communication avec les fonctions changent. Vous ne pouvez donc pas générer de code 64 bits à l'aide d'un compilateur 32 bits.

Vous voudrez peut-être consulter un article sur le site Web de Microsoft sur le ciblage d'une cible 64 bits mais à l'aide d'une machine de développement 32 bits.

péril cerveau
la source
La réponse donnée est
conforme à la
Oui, il est vrai que toutes les dépendances devront également être (re) compilées à l'aide du compilateur 64 bits, sinon l'étape de liaison échouera.
rogerdpack
2

Comme l'a dit Jakob: Windows sdk 7.1 ne peut pas être installé si les runtimes MS VC ++ x64 et x86 et les redisrtibutables de la version 10.0.40219 sont présents. après les avoir supprimés, l'installation de win sdk est correcte, VS C ++ SP1 peut être réinstallé correctement.

Sincères amitiés

Hadrien Huvelle
la source