2017-09-06 6 views
2

J'utilise la version VS2013 x86 sur mon ordinateur 64 bits. Dans ce web vs command prompt introduit de nombreux types d'invites et je suis un peu confus à ce sujet. Dois-je utiliser l'invite de commande native x64 ou l'invite de commande de Cross Tools x64 x86?quelle invite de commande de Visual Studio I doit utiliser?

+1

Cela dépend du type de binaire que vous voulez produire/manipuler. Voulez-vous un binaire 64 bits ou 32 bits? –

+1

Je veux un binaire 64 bits, doit-il être une invite de commande natif x64? – benkyou

Répondre

3

Il existe trois versions du compilateur toolchain, et donc trois invites de commande différents:

  • Les outils « x86 » exécutent en mode natif sur les systèmes x86 32 bits et produire des binaires x86 32 bits.

    Ils se trouvent dans le répertoire/vc/bin et l'invite de commande associée configure l'environnement pour utiliser ces outils. Les outils «x64» s'exécutent nativement sur les systèmes x86 64 bits («x64» dans Microsoft vernacular) et produisent des binaires 64 bits x86.

    Ils se trouvent dans le répertoire/vc/bin/amd64 et l'invite de commande associée configure l'environnement pour utiliser ces outils. Les outils croisés «x64-x86» s'exécutent sur des systèmes x86 32 bits, mais produisent des binaires 64 bits x86.

    Ils se trouvent dans le répertoire/vc/bin/amd64_x86 et l'invite de commande associée configure l'environnement pour utiliser ces outils.

Lequel vous utilisez dépend du type de binaire que vous voulez produire/manipuler.

Si vous souhaitez générer du code 32 bits, vous devez utiliser les outils x86. Ceux-ci s'exécuteront sur une machine 32 bits ou 64 bits (cette dernière via le sous-système WOW64, le même responsable de l'exécution de tous les processus 32 bits).

Si vous souhaitez générer du code 64 bits sur un système 32 bits, doit utiliser le compilateur croisé x64-x86. Un compilateur croisé est un compilateur qui génère du code pour une plate-forme différente de celle sur laquelle il s'exécute réellement. Un exemple plus évident serait un compilateur qui fonctionne sur x86 mais produit du code ARM. Dans ce cas, c'est un compilateur 32 bits qui produit du code 64 bits.

Si vous souhaitez générer du code 64 bits sur un système 64 bits, vous pouvez choisir d'utiliser le compilateur natif x64. Cela vous donne tous les avantages d'utiliser un processus 64 bits (espace d'adressage plus grand, plus de registres architecturaux, etc.), et c'est probablement ce que vous voulez utiliser. (Mais vous pouvez également utiliser le compilateur croisé x64-x86 sur une machine 64 bits, grâce au sous-système WOW64 mentionné ci-dessus.)