我是旧版C++代码库的当前所有者。它有几十个源文件和头文件。该项目通常在linux上开发,构建和部署。在linux中,构建系统是scons / gcc,产品是单个可执行文件。

我想为代码的各个部分生成可维护性指数(MI),以帮助表明对代码区域中的体系结构的更新比以前的体系结构更具可维护性。因此,我进行了一些研究,发现Visual Studio 2013(我拥有Ultimate许可证)可以做到这一点。

我成功将所有源代码导入了新的VS2013“Win32控制台应用程序”。我还通过进行一些更改以适应gcc和VS2013之间的差异来获得构建源。

我尝试运行“分析|计算[项目]的代码度量”,VS2013产生此错误:

项目:[省略]
配置:调试
范围:无
组装:[略]
可维护性指标:
圈复杂度:
继承深度:
类耦合:
代码行:
消息:项目目标文件“[省略]”不包含托管代码。

因此,我将“属性|配置属性|常规|公共(public)语言运行时支持”的值从“无CLR支持”更改为“纯MSIL CLR支持”,然后重新运行,并在“代码度量结果”窗口中获得了它(执行我的最好显示输出的内容,因为我还不能发布图像):

层次可维护性指数环复杂性...
-------------------------------------------------- --------------------------------
* [可执行文件](调试)36 31
*全局36 31
* main(int,char ** const):整数36 31

我没有比main()更详细的信息,没有办法像[executable]或Global那样扩展main()。我认为我可以在每个文件,每个功能或每个类(class)上获得分数。

谁能告诉我:

  • VS2013可以按文件,函数或类级别生成MI吗?
  • 该怎么做?
  • 是否可以在Linux的代码上运行任何价格低于$ 50的软件来生成MI?

  • 我想对代码进行最少的更改,但是我可以轻松地更改项目类型,项目属性,创建新项目并重新导入源代码,将生成产品更改为.dll或.lib等。

    最佳答案

    如我的评论中所述,这是因为我的代码是非托管C++,而且我发现文档中的代码指标仅在托管代码上运行。即使添加/ clr选项之一也不足以获取在功能级别生成的指标。

    08-27 10:55