【发布时间】:2011-09-29 16:35:30
【问题描述】:
我想了解是否存在对构建设置进行“静态分析”的任何工具,特别是 Visual-Studio C++ 本机项目文件。 (*.vcproj for 2005/2008 - 我认为 2010 引入了一种与 MSBuild 统一的新文件类型。)
我们希望在签入 SCC 的所有项目/模块上自动检查的内容是:
- 检查所有预处理器定义。 (例如,检查发布版本是否定义了
NDEBUG。) - 确保所有相关项目的编译器优化设置都相同。
- 确保如果项目链接到模块 Y,它也链接到模块 Z,但永远不会链接到模块 A。
- 确保所有相关项目使用相同的运行时库(链接)设置等。
- 确保项目在发布和调试模式下生成可用且名称正确的 pdb 文件。
- 确保组中的所有项目都包含 abc.vsprops 以进行其他设置。
- ...
所以基本上我们有一个包含大量项目的源代码库,我们希望确保所有(组)项目确实具有有效的构建设置,并且继续具有有效的构建设置。
是否有任何工具可以做到这一点,或者人们只是自己动手?
当您有很多开发人员时,如何使您的项目设置/MSBuild 设置保持一致?
编辑:我还发布了这个over at the VC++ forums,虽然我在 SO 上得到了零个答案,但我得到了零个有用个答案。
我将废弃makefile 标签并添加visual-c++ 标签,看看这是否更有意义:
我们已经为我们的 Visual-Studio-2005 项目实施了上述大部分检查。 VC10 或 VC11 的升级迫在眉睫,而且——因为微软改变了项目文件格式——我将不得不扔掉我们拥有的工具[a]并编写新的检查。这就是 MS 的现实。他们将改变他们的项目文件格式。这不是抱怨,毕竟他们提供了一个不错的转换器,他们有他们的理由。但是,我会很乐意购买一种产品,该产品允许我在每次更改项目格式时无需重写我们的检查工具即可检查统一设置。
[a] :正如你所料。这些工具是内部编写的。有 0.01 个文档。而且维护起来很糟糕。
【问题讨论】:
标签: makefile visual-c++ visual-studio visual-c++ automation projects-and-solutions static-analysis