Comment faire pour Visual Studio utilisez la chaîne d'outils natif amd64
Comment puis-je obtenir Visual Studio 2012 pour utiliser la chaîne d'outils native amd64, plutôt que le compilateur croisé x86_amd64 par défaut?
je construis une grande bibliothèque qui provoque le linker à s'épuiser de mémoire en faisant l'optimisation de programme entier et la génération de code de temps de lien.
j'ai trouvé deux billets plus anciens ( ici et ici ) qui posaient la même question, mais aucune réponse pour le moment. Microsoft fournit documentation sur la façon de spécifier la chaîne d'outils sur la ligne de commande , mais pas dans L'IDE.
3 réponses
vous devez définir la variable d'environnement "_isnativeenvironnement" à "true" avant de commencer Visual Studio 2012 IDE:
set _IsNativeEnvironment=true
start "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe" your_solution.sln
pour Visual Studio 2013, le nom de la variable d'environnement est différent:
set PreferredToolArchitecture=x64
sbm start "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" your_solution.sln
Attention, cette technique ne fonctionne pas si la version de L'IDE ne correspond pas à la version de la chaîne d'outils. C'est-à-dire, si vous utilisez L'IDE VS2013 configuré pour exécuter le compilateur VS2012, vous n'avez pas de chance. Mais de telles la combinaison est rare.
Voici quelques liens pour plus d'informations:
"comment intégrer L'architecture Preferred Tool dans le projet en VS13
il y a une autre méthode pour forcer L'utilisation du linker 64 bits sur une base par projet pour Visual Studio 2013. Modifier votre .VCXPROJ et insérer ce qui suit après la ligne <Import...Microsoft.Cpp.Defaults
:
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>
si votre but est d'utiliser le natif environnement plutôt que spécifiquement amd64_x86
, vous pouvez définir la propriété UseNativeEnvironment
dans votre dossier de projet:
<PropertyGroup>
<UseNativeEnvironment>true</UseNativeEnvironment>
</PropertyGroup>
(Je l'ai ajouté avec succès au groupe de propriété" Globals".)
vous pouvez vérifier quelle chaîne d'outils est utilisée en ajoutant l'option de compilateur /Bv
. Exemple de sortie est ci-dessous. Notez que le répertoire de la chaîne d'outils apparaît après bin\
( amd64_x86
dans ce cas).
2>ClCompile:
2> Compiler Passes:
2> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64_x86\CL.exe: Version 18.00.31101.0
2> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64_x86\c1.dll: Version 18.00.31101.0
2> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64_x86\c1xx.dll: Version 18.00.31101.0
2> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64_x86\c2.dll: Version 18.00.31101.0
2> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64_x86\link.exe: Version 12.00.31101.0
2> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\mspdb120.dll: Version 12.00.31101.0
2> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64_x8633\clui.dll: Version 18.00.31101.0