我的一个项目中有一个文件,它定义了一个影响整个项目中大多数其他模块行为的变量。我们称之为custom.h
。它看起来像这样:
#pragma once
#define BUILD 3 // 1: personal, 2: select, 3: elite
在整个项目中,有许多引用此变量来控制产品版本之间的行为。更改此值会触发重建项目的大部分内容。我想要做的是创建单独的构建配置,每个版本一个,这样当我对版本进行更改时,它只会重建已修改的文件,而不是整个项目。
如果我有三个配置,每个版本一个,是否有一种方法可以让Visual Studio在对custom.h
文件进行更改时不重建,如果该版本与该配置的内容相匹配? IE,如果我将BUILD设置为3并使用Elite Configuration进行构建,然后将BUILD更改为2并使用Select Configuration进行构建,我不希望它重建整个项目,因为Select中间文件应该已经存在。 / p>
配置都有自己的中介目录以及他们自己的输出目录。感觉我接近我需要的东西,但此时的一些建议是非常宝贵的。
答案 0 :(得分:1)
不是更改每个构建的定义,而是使用您提到的配置并在项目中定义预处理器定义。然后对每个配置使用compile指令。我认为这会让你的增量编译正常工作。
您的custom.h将如下所示:
#pragma once
#if defined(PERSONAL)
#define BUILD 1
#elif defined(SELECT)
#define BUILD 2
#elif defined(ELITE)
#define BUILD 3
#endif
预处理器定义可以在项目属性中设置,也可以通过命令行开关设置,具体取决于您的构建方式。