我正在尝试启用链接时codegen(LTCG)和整个程序优化(WPO)来构建使用Visual Studio 2017构建的大型Windows C ++应用程序.64位产品构建良好但是我们的codegen步骤32位构建内存不足。
所以,我需要切换32位版本以使用64位link.exe,如下所述:How to: Enable a 64-Bit, x64 hosted Visual C++ toolset on the command line
具体做法是:
32位和64位工具生成相同的代码,但64位工具支持更多内存用于预编译的头符号和整个程序优化(/ GL和/ LTCG)选项。如果在使用32位工具时遇到内存限制,请尝试使用64位工具。
它描述了从命令行构建中执行此操作,但我需要在devenv环境中执行此操作。我没有成功搜索解决方案或项目设置来控制使用64位工具集进行32位构建。
我怀疑我需要直接编辑.vcxproj文件但不确定要添加什么。谁能告诉我如何以这种方式设置我的32位构建?
答案 0 :(得分:1)
找到我自己的答案......您需要手动编辑.vcxproj文件并将其添加到PropertyGoup
<UseNativeEnvironment>true</UseNativeEnvironment>
所以我现在看起来像这样:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<UseNativeEnvironment>true</UseNativeEnvironment>
</PropertyGroup>
答案 1 :(得分:1)
另一种答案是在项目中使用 PreferredToolArchitecture
。
使用 Visual Studio 2019 (v16.1),这可以在“配置属性\高级\首选构建工具架构”下的项目属性对话框中完成。指定 x64。
对于旧版本的 Visual Studio,需要编辑 vcxproj。这记录在 Walkthrough: Using MSBuild to Create a Visual C++ Project
<PropertyGroup>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>