如何为 C++ RTP 应用程序项目配置 SonarQube Dev Edition

How To Configure SonarQube Dev Edition For a C++ RTP Application Project

我正在 Wind River Workbench 3.3 中为 VxWorks 6.9 开发几个或 C++ 实时过程应用程序项目。我想集成 SonarQube 开发者版来获得静态分析结果。

VxWorks 使用 Wind River GCC 4.3.3 编译器编译应用程序,这是 VxWorks 的自定义 GCC 版本。我配置了构建包装器、声纳扫描器和声纳服务器。成功执行声纳扫描仪后,我可以看到该项目出现在 SonarQube 中。

我遇到的问题是,当我有一个简单的 C++ 文件时,如下所示:

我已经尝试使用

编译 VxWorks 编译器提供的 SonarQube 构建包装示例
c++pentium -o main.o main.cpp

并且 SonarQube 实例显示了错误。

我还创建了一个新的基本 RTP 应用程序项目并包含了来自 SonarQube 的 main.cpp 文件,出于某种原因,当我没有任何 C++ 标准库头文件时,我会遇到错误,但是当我#include 类似我得到零错误的东西。似乎 build-wrapper 或 sonar-scanner 找不到任何与 C++ 相关的内容,或者当包含任何与 C++ 相关的内容时无法找到错误。

main.cpp

#include <iostream>

int main()
{
    int arr[2];

    for (int i = 0; i < 3; ++i) {
        arr[i] = 0;
    }

    return 0;
}

Workbench 构建命令

build-wrapper-win-x86-64 --out-dir bw_output %makeprefix% make --no-print-directory

声纳-project.properties

sonar.projectKey=myFirstSonarQubeProject
sonar.projectName=My First C++ SonarQube Project
sonar.projectVersion=1.0
sonar.sources=.
sonar.cfamily.build-wrapper-output=COREgnu_LP64_RTP/bw_output
sonar.sourceEncoding=UTF-8

SonarCFamily 的最新版本 6.2 添加了对 Wind River VxWorks GCC -mrtp 标志的支持,以构建和分析 RTP 应用程序。