我一直使用Visual Studio内置的GUI支持配置我的项目,通常使用属性表来让几个项目使用相同的设置。
但我最大的抱怨之一是管理多个项目、配置和平台。如果你只用主要的GUI(右键单击项目->属性),很快就会变得混乱,难以维护,并容易出现错误(例如未能正确定义某些宏或使用错误的运行时库等)。处理不同人将依赖库放置在不同位置(例如我的全部位于“C:\ Libs \ [C,C ++] \ [lib-name] \”中),然后通常以不同方式管理这些库的不同版本(发布版,调试版,x86,x64等)也是一个大问题,因为它极大地复杂化了在新系统上设置的时间,然后还有版本控制和保持每个人的路径分开的问题...
属性表让情况稍微好了一点,但我无法让一个表具有不同配置和平台的单独设置(下拉框被灰显),导致我拥有许多表,如果以正确的顺序继承它们,就可以实现我想要的功能(“x86”,“x64”,“debug”,“release”,“common”,“directories”(通过定义用户宏如BoostX86LibDir解决前面提到的依赖关系问题),等等),如果以错误的顺序继承(例如在“x64”和“debug”之前继承“common”),就会导致问题,如尝试链接不正确的库版本或不正确地命名输出...
我想要的是一种处理所有这些分散依赖项的方法,并设置一组“规则”,这些规则由解决方案中的所有项目使用,例如将输出库命名为“mylib-[vc90,vc100]-[x86,x64][-d]. lib”,而不必为每个单独的项目、配置和平台组合都这样做,然后将它们全部正确地同步。
我知道可以转移到完全不同的系统,如CMake,来创建所需的文件,但这会在其他地方使事情变得复杂,例如,即使像向项目添加新文件这样的简单任务也需要在其他地方进行额外的更改,除非有VS2010集成可以跟踪这些更改,否则我也不是完全满意。