【问题标题】:SourceMonitor using C and C++ at same projectSourceMonitor 在同一个项目中使用 C 和 C++
【发布时间】:2018-07-05 05:43:34
【问题描述】:

使用 SourceMonitor xml 命令文件,我正在尝试分析从 Git 签出的整个存储库,我知道它在同一目录中同时具有 C 和 C++ 代码。

这是我的 XML 命令文件的 sn-p。

<?xml version="1.0" encoding="utf-8"?>
<sourcemonitor_commands>
<command>
<project_file>testproj.smproj</project_file>
<checkpoint_name>Baseline</checkpoint_name>
<project_language>C++</project_language>
<source_directory>C:\Users\....</source_directory>
.......
</command>

在 GUI 中,我手动添加了其他类型的扩展,并且成功了!我尝试在上面的 xml 文件中添加这一行,但这导致 .C 文件的指标值为零:

<file_extensions>*.h,*.cpp,*.c,*.pdl</file_extensions>

我做错了什么?这甚至可能吗?我只想在一个 SourceMonitor 项目中完成这一切。

【问题讨论】:

  • 我会试试&lt;file_extensions&gt;*.h,*.c*&lt;/file_extensions&gt;
  • 另外,您的 c 文件是否使用 .C 扩展名(大写)?这可能是问题所在。
  • 为什么在同一个项目中有 C 和 C++ 代码?把它们分开。
  • @Jean-FrançoisFabre 我试过了,仍然生成零指标。
  • @VTT 因为我试图分析整个存储库而不仅仅是一个项目。

标签: c++ c static-analysis code-metrics source-monitor


【解决方案1】:

为您的软件语料库创建两个独立的 SourceMonitor 项目

您无法从混合语言项目中获得一个软件指标这一事实反映了 SourceMonitor 的设计方式。它是围绕 /values/ 指标构建的,可以显示、比较、排序……每种语言都有自己的指标集(C++ 的类指标不适用于 C)。不同语言的同名指标也有不同的“绿色区域”。

结合多种语言的实际价值是有限的:例如,您将如何比较不同编程语言的两个文件的最大复杂度

为了说明这一点:您双击一个检查点以获取一个表格,其中包含所有涉及的指标的绝对值,一个文件一个文件,按字母顺序(文件名)。这些表中的所有度量值都是绝对值。通过单击相应的标题,您可以对您最感兴趣的标准进行排序(通常是负责检查点极值的文件)。

【讨论】:

    猜你喜欢
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 2019-08-11
    相关资源
    最近更新 更多