【发布时间】:2011-03-30 23:21:51
【问题描述】:
我一直使用内置 GUI 支持的 Visual Studios 来配置我的项目,通常使用属性表,以便多个项目使用一个公共集。
我对此的主要抱怨之一是管理多个项目、配置和平台。如果你只是用主 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 集成的东西可以跟踪这些变化。
【问题讨论】:
-
我感受到您的痛苦:我们的产品中有超过 600 个 vcproj 正在工作。 :(
标签: c++ visual-studio-2010 visual-studio build projects-and-solutions