【问题标题】:How can I generate a Visual Studio 2012 project targeting Windows XP with CMake?如何使用 CMake 生成面向 Windows XP 的 Visual Studio 2012 项目?
【发布时间】:2012-11-15 19:36:09
【问题描述】:

随着 Visual Studio 2012 Update 1 的发布,我希望构建一个 C++ 项目来支持 Windows XP。有没有办法使用 CMake 生成针对 Windows XP 的项目?基本上 CMake 需要生成一个使用 Platform Toolset = Visual Studio 2012 - Windows XP (v110_xp) 的项目文件。

【问题讨论】:

    标签: c++ visual-studio visual-studio-2012 cmake windows-xp


    【解决方案1】:

    根据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
    • 如果我删除引号,它对我有用,就像在 -T v90 中一样。当然必须安装平台工具集。
    【解决方案2】:

    根据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”值 配置。

    您还可以查看其他答案的 cmets。

    【讨论】:

    • 正如 Jesper Hedlung 在他的回答中提到的:较新版本的 CMake 支持使用不同的平台工具集。
    【解决方案3】:

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

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

    【讨论】:

    • 唯一的问题是 CMake 将尝试再次运行。 CMake 生成的项目不应该被修改。如果您点击忽略按钮,它将起作用,但您必须在每次构建时都这样做。
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 2013-05-06
      • 2013-08-06
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 2010-09-28
      相关资源
      最近更新 更多