我在 Visual C++ 2010 解决方案的几个项目中使用了boost 库。我目前正在做的是通过设置修改每个项目的属性:
Properties->Configuration Properties->C/C++->General->Additional Include Directories 包含boost目录
C:\boost\boost_1_47
Properties->Configuration Properties->Linker->General->Additional Library Directories 以包含 boost lib 目录
C:\boost\boost_1_47\lib
现在我将我的 boost 版本升级到 1.51,我意识到我通过多次指定此信息(即每个项目一次)违反了 DRY。我想在一个地方定义提升信息。
经过研究,似乎属性表是一个很好的解决方案。我已经阅读了有关属性表继承的信息,但我看不出这有什么用,因为似乎如果您想添加一个特定于项目的包含目录,那么您将必须在该特定项目的属性中设置附加包含目录然后将覆盖定义 boost 包含目录的继承属性表。如果我对此有误,请纠正我。
所以我的下一个想法是创建一个名为 GlobalMacros.prop 的属性表并定义一个类似的用户宏$(BoostDir)
,然后将此属性表添加到每个项目中。然后我可以在定义包含目录和库目录时在每个项目的属性中使用宏。但是,在创建宏时,有一个选项“将此宏设置为构建环境中的环境变量”,我不确定它的作用或是否应该设置它。
总的来说,我想知道减少常见设置的重复配置定义的最佳方法是什么?