如何使用CMake生成一个针对Windows XP目标的Visual Studio 2012项目?

18

随着Visual Studio 2012 Update 1的发布,我希望构建一个C++项目以支持Windows XP。是否有一种方法可以使用CMake生成一个以Windows XP为目标的项目?基本上,CMake需要生成一个项目文件,该文件使用平台工具集=Visual Studio 2012 - Windows XP(v110_xp)。

4个回答

17
根据http://www.cmake.org/Bug/view.php?id=10722的说法,现在(很快)的答案是肯定的。
已修复于版本CMake 2.8.11中。这里增加了一个新的“生成器工具集”功能:http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7dab9977 [^]。现在可以通过命令行运行CMake,并使用“-G“Visual Studio 10” -T“v90”来构建特定的工具集。我们尚未为此添加cmake-gui的一流接口,但可以在配置之前添加缓存条目“CMAKE_GENERATOR_TOOLSET”以包含“-T”值。

是的,我确认了,但是看起来NMake生成器在2.8.11.rc4中还不支持工具集选择。 - dzada
如果我删除引号,例如 -T v90,它对我有效。当然,必须安装平台工具集。 - MOnsDaR

13
根据http://www.cmake.org/Bug/view.php?id=10722,答案是是。
更新:上述提到的错误已通过以下评论得到解决:

版本CMake 2.8.11中已修复

新增了一个“生成器工具集”功能:

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7dab9977 [^]

现在可以使用以下命令从命令行运行CMake:

-G“Visual Studio 10”-T“v90”

以使用特定的工具集进行构建。我们尚未为此添加cmake-gui的一流界面,但可以在配置之前添加缓存条目“CMAKE_GENERATOR_TOOLSET”以包含“-T”值。

您还可以查看对其他答案的评论。

正如 Jesper Hedlung 在他的回答中提到的那样:较新版本的 CMake 支持使用不同的平台工具集。 - MOnsDaR

1

我认为你可以为Visual Studio 2010/2012生成一个解决方案。打开这个解决方案,在Visual Studio中打开解决方案/项目,打开属性并重新配置平台工具集为v110_xp。

然后你应该没问题了。但我仍在寻找如何设置命令行来构建v110_xp程序的解决方案...


3
唯一的问题是 CMake 将会再次尝试运行。由 CMake 生成的项目不应该被修改。如果你点击忽略按钮,它将能够工作,但需要在每次构建时重复此操作。 - McLeary

1
我认为解决这个问题的最佳方式是使用CMake为Visual Studio 2010构建您的项目,然后使用Visual Studio 2012打开项目。当您这样做时,所使用的工具集将是vs2010,适用于WinXP。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接