vcvarsall - 使用64位编译器,然后切换回32位进行单独构建

时间:2015-05-29 15:34:55

标签: windows visual-studio-2010 batch-file 64-bit 32bit-64bit

我正在使用vcvarsall切换到VS2010的x64编译工具,因为我遇到了某个版本的内存问题。但是,我还希望将BACK切换到x86工具以进行常规构建。

目前我有一个如下所示的批处理文件:

CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64
set _IsNativeEnvironment=true

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv" "C:\Development\projectx.sln" /build "Debug|x64"

CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
set _IsNativeEnvironment=true

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv" "C:\Development\projectx.sln" /build "Debug|x86"

这适用于第一次构建,但第二次仍将启动64位编译器/链接器 - 偶尔会出错(为什么我需要使用32)。 在测试中,我发现只有在运行x86 vcvarsall.bat后打开新命令行时它才会起作用 - 我如何在批处理文件中模仿它?

1 个答案:

答案 0 :(得分:1)

使用setlocalendlocal

setlocal
CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64
set _IsNativeEnvironment=true

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv" "C:\Development\projectx.sln" /build "Debug|x64"
endlocal

setlocal
CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
set _IsNativeEnvironment=true

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv" "C:\Development\projectx.sln" /build "Debug|x86"
endlocal