gpt4 book ai didi

c++ - gcov 与 CMake 使用单独的构建目录

转载 作者:可可西里 更新时间:2023-11-01 14:58:54 25 4
gpt4 key购买 nike

我正在努力获取 gcov 的覆盖信息。编译和链接期间没有错误,但是当我运行可执行文件时,没有生成覆盖率数据。

我将 CMake 与单独的构建目录一起使用,以这种方式将标志传递给编译器和链接器:

add_definitions(--coverage)
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} " --coverage")

可执行文件是否期望源代码位于特定位置?我必须向我的 CMakeLists.txt 添加什么才能让事情顺利进行?

亲切的问候,比约恩

最佳答案

CMake 似乎将代码覆盖率(*.gcda、*.gcdo)文件与项目的目标文件放在一起。如果您的可执行文件名为“tester”,那么它们将出现在以下路径中

${CMAKE_BINARY_DIR}/CMakeFiles/tester.dir/

CMake 似乎以一种与 gcov 不太兼容的方式命名源文件。例如,如果我有一个名为“mytestprog.cpp”的源文件,它将被构建

mytestprog.cpp.o
mytestprog.cpp.gcda
mytestprog.cpp.gcdno

gcov 似乎期望的地方

mytestprog.gcda
mytestprog.gcdno

我不太确定如何修复它。我试过改用 LCov,它“似乎”起作用了,但我不确定它是否起作用。

关于c++ - gcov 与 CMake 使用单独的构建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6089140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com