小编Ива*_*зов的帖子

gcov 在 Clang 和 GCC 上产生不同的结果

我试图了解如何使用 CMake、googletest 和 gcov 进行测试覆盖率来正确构建 C++ 项目。我想构建一个适用于任何平台/编译器的通用 CMakeLists.txt。

是我的第一次尝试。但是,如果我尝试构建项目,然后运行 ​​lcov(以生成报告),我会发现如果使用 CLang(正确结果)或 GCC(错误结果),则会得到不同的结果。请注意,我在 MacO 上,并且通过 brew ( brew install gcc) 安装了 gcc。

此外,我在 main 中使用了以下标志CMakeLists.txt

if(CODE_COVERAGE)
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage" )
endif()
Run Code Online (Sandbox Code Playgroud)

CMakeLists.txt注意:如果您在我的文件或使用中发现错误/奇怪的内容lcov,我愿意接受任何类型的反馈!

我的图书馆

#include "library.h"

#include <iostream>

void foo(){
    std::cout << "Foo!" << std::endl;
}

void bar(int n){
    if (n > 0){
        std::cout << "n is grater than 0!" << std::endl;
    }
    else if (n < 0){
        std::cout << "n is less than …
Run Code Online (Sandbox Code Playgroud)

c++ code-coverage cmake gcov lcov

13
推荐指数
1
解决办法
1798
查看次数

标签 统计

c++ ×1

cmake ×1

code-coverage ×1

gcov ×1

lcov ×1