【问题标题】:Visual Studio: Compile hdrstop-precompiled header only when necessaryVisual Studio:仅在必要时编译 hdrstop 预编译的标头
【发布时间】:2016-02-16 09:12:20
【问题描述】:

我在命令行上使用 Visual Studio 编译器。我从一个调用cl.exe 两次的批处理文件构建。第一个调用使用/Yc 选项(不带文件名参数)创建PCH,第二个调用使用/Yu 选项创建PCH。我只有一个使用pragma hdrstop 的源文件。

现在,当我不更改hdrstop 之前的代码时,编译器无需在第一次调用时执行任何操作。如果没有任何变化,我如何告诉cl.exe 跳过编译?

【问题讨论】:

  • 构建系统的工作是确定编译器是否因 .h 或 .cpp 文件更改而必须运行。从命令行运行 cl.exe 是使用构建系统的反面。不止一种方法可以做到这一点,使用 msbuild.exe 是最明显的成功途径。或者只是简单地使用 IDE,然后按 Ctrl+Shift+B,这很简单。

标签: c++ visual-studio visual-studio-2010


【解决方案1】:

您通常不会在编译器中这样做。相反,您使用一个 makefile 来避免在没有任何更改的情况下调用编译器。

如果您在 Visual Studio IDE 中创建项目,它会自动找出所有这些依赖项。如果你真的想要,你甚至可以导出一个 make 文件。或者,不是调用 cl,而是从命令行调用 Visual Studio,并将命令行选项设置为构建,而不是启动 IDE。

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 2011-06-13
    • 1970-01-01
    • 2021-07-30
    • 2016-01-22
    相关资源
    最近更新 更多