在你写的cmakelist中有一个问题,导致了未找到gcda文件,报错/code/qemuplace/cov/build/CMakeFiles/test.dir/test.cpp.gcno:cannot open notes file
时间: 2023-10-03 10:10:21 浏览: 258
这个问题可能是因为你的 CMakeLists.txt 中没有设置生成的 gcda 文件的路径。你可以尝试在 CMakeLists.txt 中添加以下代码:
```
set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE 1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
set(CMAKE_BUILD_TYPE Debug)
```
其中,`set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE 1)` 用于设置 C++ 编译器输出 gcda 文件的路径。`set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")` 用于设置编译选项,生成 gcda 文件和覆盖率信息。`set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")` 设置可执行文件的链接选项,以包含 gcda 文件和覆盖率信息。`set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")` 设置模块文件的链接选项。`set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")` 设置共享库的链接选项。
最后,`set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)` 用于设置可执行文件的输出路径,`set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)` 用于设置静态库的输出路径,`set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)` 用于设置共享库的输出路径。
如果你已经设置了路径,可以尝试检查 gcda 文件是否存在,或者尝试重新生成项目。
阅读全文