2

我在我们的一个项目中有一个文件,它定义了一个变量,该变量会影响整个项目中大多数其他模块的行为。让我们称之为custom.h。它看起来像这样:

#pragma once

#define BUILD 3 // 1: personal, 2: select, 3: elite

在整个项目中,有许多引用此变量来控制产品版本之间的行为。更改此值会触发大部分项目的重建。我想做的是创建单独的构建配置,每个版本一个,这样当我对版本进行更改时,它只会重建修改过的文件,而不是整个项目。

如果我有三个配置,每个版本一个,custom.h如果版本与已为该配置构建的内容匹配,是否有办法让 Visual Studio 在对此文件进行更改时不重新构建?IE,如果我将 BUILD 设置为 3 并使用 Elite 配置进行构建,然后将 BUILD 更改为 2 并使用 Select 配置进行构建,我不希望它重新构建整个项目,因为 Select 的中间文件应该已经存在。

配置都有自己的中间目录以及自己的输出目录。感觉就像我接近我需要的东西,但在这一点上的一些建议将是无价的。

4

1 回答 1

1

一种选择是使用您提到的配置并在项目中定义预处理器定义,而不是更改每个构建的定义。然后为每个配置使用编译指令。我认为这会让你的增量编译正常工作。

您的 custom.h 看起来像这样:

#pragma once

#if defined(PERSONAL)
    #define BUILD 1 
#elif defined(SELECT)
    #define BUILD 2 
#elif defined(ELITE)
    #define BUILD 3 
#endif

预处理器定义可以在项目属性中设置,也可以通过命令行开关设置,具体取决于您的构建方式。

MSDN 上的指令

MSDN 上的预处理器定义

于 2012-02-14T18:15:35.773 回答