C/Fortran代码的覆盖率
我使用gcc和gfortran编译代码。为了生成覆盖率信息,我曾经将C/Fortran代码的覆盖率,c,gcc,code-coverage,gfortran,gcov,C,Gcc,Code Coverage,Gfortran,Gcov,我使用gcc和gfortran编译代码。为了生成覆盖率信息,我曾经将--coverage添加到两个编译器标志(FFLAGS和CFLAGS),编译器将生成.gcno文件,在运行程序时,我将得到包含覆盖率信息的.gcda文件 分离源目录和目标目录(src/*.c和out/obj/*.o)后,gcda文件不再生成。至少我认为这是因为分离 这是可修复的吗?文件是在您最初编译的目录中生成的,不一定是可执行文件所在的目录,也不一定是启动的目录。当然,您可以执行find。我使用了find,它们既不在源代码旁边
--coverage
添加到两个编译器标志(FFLAGS
和CFLAGS
),编译器将生成.gcno
文件,在运行程序时,我将得到包含覆盖率信息的.gcda
文件
分离源目录和目标目录(src/*.c
和out/obj/*.o
)后,gcda
文件不再生成。至少我认为这是因为分离
这是可修复的吗?文件是在您最初编译的目录中生成的,不一定是可执行文件所在的目录,也不一定是启动的目录。当然,您可以执行
find
。我使用了find,它们既不在源代码旁边,也不在我调用make的工作目录中,也不在对象文件旁边。您可以尝试使用系统调用跟踪工具(例如,linux上的strace
)查看可执行文件正在执行的操作。在日志输出中搜索出现的gcda
或gcno
,这可能会提供有关它在哪里查看或在哪里写入的线索。