我在Stack Overflow用户Eoin上发现了一篇帖子,展示了他如何为VC ++ 2012修改vcvars32.bat(我使用2013):
:x86
if not exist "%~dp0bin\vcvars32.bat" goto missing
call "%~dp0bin\vcvars32.bat"
set INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%
set PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
set LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
set CL=/D_USING_V110_SDK71_;%CL%
goto :SetVisualStudioVersion
以下是修改前的部分:
:x86
if not exist "%~dp0bin\vcvars32.bat" goto missing
call "%~dp0bin\vcvars32.bat"
goto :SetVisualStudioVersion
在应用上述修改后,我使用CL (cl main.cpp)构建了一个“hello world”应用程序,但是可执行文件不能在Windows 2003上运行。如果使用IDE构建 如上所述,它运行得很好。
有人可以对发生的事情有所了解吗?
P.S。想要这样做的原因是我需要使用XP平台选项构建Boost库以允许我的应用程序在Windows 2003上运行。没有可用于构建Boost的解决方案或项目这是通过命令行使用他们的Bootstrap和Bjam例程完成的,该例程没有XP平台选项。
答案 0 :(得分:2)
堆叠溢出Eoin建议的所有内容都是准确的,除了他的回答没有包含%LINK%的必要设置
这是我的工作:x86部分:
:x86
if not exist "%~dp0bin\vcvars32.bat" goto missing
call "%~dp0bin\vcvars32.bat"
set INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%
set PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
set LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
set CL=/D_USING_V110_SDK71_;%CL%
set LINK=/SUBSYSTEM:CONSOLE,5.01 %LINK%
goto :SetVisualStudioVersion
我希望创建需要XP和Windows 2003兼容性的解决方案的人发现这很有用。
完整详情: