使用 SourceMonitor xml 命令文件,我试图分析从 Git 中 check out 的整个存储库,我知道它在同一目录中同时包含 C 和 C++ 代码。
这是我的 XML 命令文件的一个片段。
<?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 项目中完成所有工作。
最佳答案
为您的软件语料库创建两个独立的 SourceMonitor 项目。
您无法从混合语言项目中获得一个软件指标这一事实反射(reflect)了 SourceMonitor 的设计方式。它围绕指标的/values/构建,可以显示、比较、排序......每种语言都有自己的一组指标(C++ 的类指标不适用于 C)。不同语言的同名指标也有不同的“绿区”。
组合多种语言的实用值(value)是有限的:例如,您将如何比较不同编程语言的两个文件的最大复杂度?
为了说明这一点:您双击一个检查点以获取一个表格,其中包含所有涉及的指标的绝对值,一个文件一个文件,按字母顺序排列(文件名)。这些表中的所有度量值都是绝对值。通过单击相应的标题,您可以对您最感兴趣的标准进行排序(通常是负责检查点极值的文件)。
关于c++ - 在同一项目中使用 C 和 C++ 的 SourceMonitor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48451962/