web-dev-qa-db-fra.com

Comment compiler du code x64 avec Visual Studio en ligne de commande?

Je veux compiler un programme simple de style hello-world en utilisant la ligne de commande Windows.

cl file_name.c

est assez facile. Maintenant, je veux faire la même chose en 64 bits. Que devrais-je faire?

26
bastibe

Vous devez utiliser une version du compilateur cl.exe qui émet du code x64. Lequel dépend un peu de votre configuration.

Prenons le cas où vous êtes sur une machine 64 bits. Pour cela, vous devrez utiliser le compilateur qui vit à

c:\Program Files (x86)\Microsoft visual Studio 10.0\VC\bin\AMD64\cl.exe

Si vous êtes sur une machine 32 bits, vous devrez utiliser le compilateur croisé situé à

c:\Program Files\Microsoft Visual Studio 10.0\VC\bin\x86_AMD64\cl.exe

25
JaredPar

Exécutez cl à partir d'une invite de commandes Visual Studio x64.

20
Kyle Alons

Vous pouvez également utiliser le fichier de commandes "Vcvarsall.bat" (par défaut, le chemin complet de ce fichier est C:\Program Files\Microsoft Visual Studio 8\VC\Vcvarsall.bat pour VS2005).

Si aucun argument n'est fourni, ce fichier de commandes configure les variables d'environnement nécessaires pour utiliser le compilateur x86 32 bits. Mais il peut être utilisé pour configurer l'un des compilateurs 64 bits, par exemple pour utiliser l'argument "AMD64" du compilateur natif 64 bits. Ensuite, exécutez simplement cl.exe.

7
Gabriel Cuvillier

Kyle a raison. Il s'agit simplement de définir correctement la variable d'environnement PATH. Le compilateur x86 standard réside dans le sous-répertoire vc\bin. Il existe deux compilateurs 64 bits, un compilateur 32 bits qui génère du code 64 bits dans vc\bin\x86_AMD64 et un compilateur 64 bits qui génère du code 64 bits dans vc\bin\AMD64.

La configuration par défaut de Visual Studio utilise toujours le compilateur 32 bits pour générer du code 64 bits.

Notez que les compilateurs 64 bits ne sont pas installés par défaut. Vous devrez réexécuter setup.exe si vous n'avez pas utilisé l'option d'installation personnalisée. Et réexécutez le programme d'installation SP1.

5
Hans Passant

Exécutez cl à partir d'une "invite de commandes Visual Studio x64" ou quelque chose de similaire comme "invite de commandes x64 Native Tools pour VS 2017". Courir where cl pour voir le chemin du "cl" que vous utilisez. Quelque chose comme "x64" ou "AMD64" devrait se trouver sur le chemin.

La recherche dans le menu Démarrer peut parfois être inutile. Essayez de taper "vs20xx" ou "vs 20xx" au lieu de "visual studio" pour le trouver. Le nom de l'invite change au fil des versions. S'il ne dit pas "64", alors il mettra en place un environnement 32 bits.

L'invite 64 a tendance à appeler simplement "Vcvarsall.bat" avec un argument 64, mais l'argument change avec le temps et peut ne pas être rétrocompatible.

2
plswork04

Si vous avez du code dans le cadre d'un projet, vous pouvez utiliser comme ci-dessous

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" myproject.sln/Build "Release | x64"

obtenu à partir du lien ci-dessous

http://social.msdn.Microsoft.com/Forums/en-US/vcgeneral/thread/ed855b9d-55ef-49f1-bf27-f20a79be687e

1
notytony

Comme d'autres l'ont mentionné, la réponse dépend de l'utilisation d'un compilateur natif x64 ou d'un compilateur croisé. Cette page Web devrait vous aider http://msdn.Microsoft.com/en-us/library/x4d2c09s.aspx

0
Andrew O'Reilly