使用 CMake 和 Gcov 进行编译和链接时出错

Bil*_*mad 4 cmake

在使用 gcov 获取覆盖信息时,我在编译和链接期间收到以下错误

error: undefined reference to '__gcov_merge_add'
error: undefined reference to '__gcov_init'
Run Code Online (Sandbox Code Playgroud)

我将标志传递给 CMakeLists.txt,如下所示:

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_EXE_LINKER_FLAGS
    "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
Run Code Online (Sandbox Code Playgroud)

我还需要在 CMakeLists.txt 中添加其他内容吗?

agg*_*sol 5

设置编译器标志

add_compile_options(-g -O0 -fprofile-arcs -ftest-coverage)
Run Code Online (Sandbox Code Playgroud)

链接到 lgcov

target_link_libraries(
    <target-name>
    gcov
)
Run Code Online (Sandbox Code Playgroud)

或者使用CMake 模块