我正在使用gcov和cmake。所有标志都设置正确。 .GCNO文件正确创建。但是,执行从源文件生成的可执行文件时,情况有点复杂。可执行文件在bash脚本中运行。
让我创建一个示例场景,以便您可以给我准确的答案。
我有一个名为MY_FILE.CC的文件,其可执行文件名是EXECUTABLE_FILE 我使用cmake和为gcov设置的所有标志。 我有一个名为THE_SCRIPT.SH的脚本,它将与“make test”一起运行。该脚本运行EXECUTABLE_FILE文件。
所以这里的想法是bash脚本(THE_SCRIPT.SH)依次运行可执行文件(EXECUTABLE_FILE),并且运行这些bash脚本不会创建.GCDA文件。当我直接/手动运行可执行文件时,会创建.GCDA文件。我相信bash脚本在子shell中运行,而父shell无法知道源的可执行文件是否已运行。有人可以确认这是否正是这种情况?如果没有,那么确切的问题是什么?如果是,那么这个问题的解决方案是什么?
非常感谢。