D'après ce que tu as lié :
x64 sur x86 (compilateur croisé x64)
Permet à de créer des fichiers de sortie pour x64. Cette version de cl.exe s'exécute comme un processus 32 bits, natif sur une machine x86 et sous WOW64 sur un système d'exploitation 64-bit Widows.
x64 sur x64
Vous permet de créer des fichiers de sortie pour x64. Cette version de cl.exe fonctionne comme un processus natif sur une machine x64 sur une machine x64.
Paraphrasé :
Si vous utilisez x86_amd64, vous développez généralement sur une machine x86 et vous voulez créer des fichiers x64 qui s'exécutent nativement sur x64. Vous pouvez également utiliser cette option sur une machine x64, mais votre compilateur fonctionnera sous émulation WOW64.
Si vous utilisez AMD64, alors vous développez sur une machine x64 et vous voulez créer des fichiers x64 qui fonctionnent nativement sur x64. Le compilateur s'exécute nativement en x64. Cette option est plus efficace pour construire des programmes x64.
Vous pouvez vous demander pourquoi vous développeriez un programme x64 sur un ordinateur x86, puisque vous ne pouvez pas l'exécuter, vous ne pouvez pas le déboguer. Mais c'est quand même utile, par exemple si vous avez un serveur de compilation qui est x86 et que ce serveur de compilation doit générer des sorties x86 et x64.
Comment est-il possible pour un compilateur de fonctionner sous x64 s'il s'agit d'un programme basé sur x86 (x86_amd64) ? C'est la même raison pour laquelle vous pouvez exécuter n'importe quel programme x86 sur votre machine x64... Grâce à l'émulation WOW64.
Qu'est-ce que l'émulation WOW64 :
L'émulation WOW64 se produit lorsque vous exécutez un programme x86 sur un ordinateur x64 (ou IA64). WOW64 signifie Windows 32 sur Windows 64. Il s'agit d'une couche d'émulation au-dessus des machines x64 qui vous permet d'exécuter des programmes x86.
Vos opérations sur le système de fichiers seront redirigées vers les dossiers WOW64 et votre registre sera également redirigé vers un sous-nœud. Par exemple, si vous essayez d'obtenir le dossier des fichiers de programmes, vous obtiendrez le résultat suivant c:\program files (x86)\
si vous utilisez WOW64 mais il retournera c:\program files\
si vous utilisez x64.
Un autre exemple, pour le registre, si vous essayez d'écrire à HKLM\Software\Something
il vous redirigera vraiment vers HKLM\SOFTWARE\Wow6432Node\Something
à l'insu de votre programme x86.
L'exécution d'un build x64 natif sera plus efficace que l'exécution via l'émulation WOW64 Pourquoi ? Parce que vous n'avez pas cette couche d'émulation supplémentaire qui transforme vos appels 32 bits en appels 64 bits.
À propos, si vous utilisez la version x64 de Windows, vous pouvez voir quels processus sont en cours d'exécution par le biais de WOW64, car ils auront un *32 ajouté au nom du processus dans la liste des processus.