是否可以在sln文件中而不在项目中设置预处理器宏?(VS2008 C ++)

Tim*_*Tim 5 macros preprocessor visual-studio visual-c++

我正在维护一个大的代码库,并且在不同的解决方案中使用了一些vcproj文件。由于一些可怕的配置和依赖性,似乎处理一些构建问题的最佳方法是#ifdef代码,但为此,我需要在解决方案文件级别而不是vcproj级别设置预处理程序定义。

那可能吗?

怎么做?

Dar*_*son 5

我相信您可能想做的就是使用VS Project Manager创建一个项目属性表,所有项目都可以从中继承。这样一来,您就可以在一个位置设置任何通用项目设置,包括预处理器宏,并根据需要继承它们。


Tho*_*mas 1

2008 sln 真的很愚蠢,它们只有要放入解决方案资源管理器和项目依赖项中的项目/文件列表,所以我认为这不是一个选择。

我的直觉是用相对路径做一些事情。例如,在 stdafx.h 中,您可以 #include "....\project_configuration.h",然后在构建 sln a 时,您可以将内容检出到一个目录,然后将 sln b 检出到另一个目录。每个都有其单独的project_configuration.h。

我相信您可以对 vsprops 文件执行类似的操作,这些文件本质上是 vcproj 文件的 #includes,尽管我发现随着时间的推移,维护它们有点烦人。