如何使用vs2013的NMake在cmake中设置v120xp

aj3*_*423 3 windows-xp nmake cmake visual-studio-2013

我使用win7-32​​bit + CMake的 + vs2013的NMAKE .EXE建立exe文件,我需要的exe能够在WinXP跑,我知道该怎么做,与vs2013 IDE(设置平台的工具,以v120xp),但我我没有使用IDE,我只是使用它的NMake.这是我生成项目文件和exe的方法:

build> cmake -G "NMake Makefiles" ..
build> nmake
Run Code Online (Sandbox Code Playgroud)

问题1:在CMakeLists.txt中,如何设置它使用v120xp?

问题2:是否有必要使用v120xp构建所有静态库?或者只是exe?

Pas*_*cal 7

尝试设置CMAKE_GENERATOR_TOOLSET.它允许为支持它的Genertors选择工具集.支持工具集的生成器是Visual Studio和XCode.

您对CMake的调用应如下所示:

cmake -G "NMake Makefiles" -DCMAKE_GENERATOR_TOOLSET=v120_xp ..
Run Code Online (Sandbox Code Playgroud)

更新1:正如评论中指出的那样,NMake不支持工具集

这个解决方案是指定

SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE,5.01")
Run Code Online (Sandbox Code Playgroud)

用于控制台应用程序,或

SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,5.01")
Run Code Online (Sandbox Code Playgroud)

用于Windows应用程序.