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