对于多个解决方案和项目,如何将用户宏路径属性定义到稳定位置?

时间:2016-03-22 11:05:41

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

我想使用Visual Studio的属性页面将一些常用路径定义为用户宏 - 例如,定义到第三方库的位置,或者存储库的基本目录。

但是,我只是设法定义用户宏:

  • 使用绝对路径 - 显然是错误的
  • 相对于项目目录
  • 相对于解决方案目录。

这些都不适合我,因为我们的代码库有多个VS解决方案,有些项目在解决方案之间共享。

例如,如果我有以下结构:

$(BASE_DIR)/dirA/Solution1/Project1
$(BASE_DIR)/dirB/dirC/Solution2/Project2
$(BASE_DIR)/ThirdPartyLibs

...我想定义一个$(ThirdPartyLibDir)宏。或者,哎呀,$(BASE_DIR)宏。

假设解决方案1只有项目1,解决方案2包括项目1和项目2.在这种情况下,我无法定义相对于$(SolutionDir)的这些宏,也不能定义$(ProjectDir)。< / p>

我有什么方法可以定义这样的宏吗?

(如果有一个用于获取属性页文件位置的宏,我可以在.props中放置一个$(BASE_DIR)文件,并以这种方式定义宏。它看起来不像那样存在。)

1 个答案:

答案 0 :(得分:0)

实现此目的的一种方法是执行以下操作 -

  1. 为每个解决方案创建一个属性表,并在其中创建一个用户宏BASE_DIR,其中包含相对路径(.... \ etc。)。
  2. 根据BASE_DIR宏创建包含实际库位置等的公共属性表。将此表单添加到项目中。
  3. 这允许您使用公共props文件中的$(BASE_DIR)宏指定包含目录和其他“常用”属性。特定于解决方案的属性表提供了相对于解决方案中项目的$(BASE_DIR)值。