在使用 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 中添加其他内容吗?
设置编译器标志
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 模块
| 归档时间: |
|
| 查看次数: |
3952 次 |
| 最近记录: |