Mercurial > vim
changeset 6149:4c845a1600d2 v7.4.412
updated for version 7.4.412
Problem: Can't build on Windows XP with MSVC.
Solution: Add SUBSYSTEM_VER to the Makefile. (Yongwei Wu)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 22 Aug 2014 18:12:57 +0200 |
parents | aeafe78fc869 |
children | 9304efa28792 |
files | src/INSTALLpc.txt src/Make_mvc.mak src/version.c |
diffstat | 3 files changed, 30 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/INSTALLpc.txt +++ b/src/INSTALLpc.txt @@ -192,6 +192,30 @@ To set the environment execute the msvc2 Vim with Make_mvc.mak. +Targeting Windows XP with new MSVC *new-msvc-windows-xp* +---------------------------------- + +Beginning with Visual C++ 2010, Microsoft changed the behavior of LINK.EXE +so that it targets Windows 6.0 (Vista) by default. In order to override +this, the target Windows version number needs to be passed to LINK like +follows: + LINK ... /subsystem:console,5.01 + +Make_mvc.mak now supports a macro SUBSYSTEM_VER to pass the Windows version. +Use lines like follows to target Windows XP (assuming using Visual C++ 2012 +under 64-bit Windows): + set WinSdk71=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A + set SDK_INCLUDE_DIR=%WinSdk71%\Include + set INCLUDE=%WinSdk71%\Include;%INCLUDE% + set LIB=%WinSdk71%\Lib;%LIB% + set PATH=%WinSdk71%\Bin;%PATH% + set CL=/D_USING_V110_SDK71_ + nmake -f Make_mvc.mak ... WINVER=0x0501 SUBSYSTEM_VER=5.01 + +The following Visual C++ team blog can serve as a reference page: + http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx + + 2. MinGW ========
--- a/src/Make_mvc.mak +++ b/src/Make_mvc.mak @@ -657,6 +657,10 @@ GUI_LIB = \ SUBSYSTEM = console !endif +!if "$(SUBSYSTEM_VER)" != "" +SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER) +!endif + !if "$(GUI)" == "yes" && "$(DIRECTX)" == "yes" CFLAGS = $(CFLAGS) $(DIRECTX_DEFS) GUI_INCL = $(GUI_INCL) $(DIRECTX_INCL)