Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对可执行文件使用的共享对象使用gcov_Gcov - Fatal编程技术网

对可执行文件使用的共享对象使用gcov

对可执行文件使用的共享对象使用gcov,gcov,Gcov,我正在尝试为我的项目生成覆盖率报告。共享对象代码文件的.gcno文件按预期生成,但当我运行可执行文件(使用生成的共享对象)时,.so也与可执行文件位于同一位置,但共享对象的.gcda文件未生成,而可执行代码的.gcda文件按预期生成。 方法有问题吗? 请告知有可能获得共享图书馆的保险范围。 我尝试了使用gcov和共享库概念进行简单的hello应用程序评测,我能够获得代码覆盖率。 让我们看两个文件hello.c和extlib.c 首先编译extlib.c #include <stdio.h&

我正在尝试为我的项目生成覆盖率报告。共享对象代码文件的.gcno文件按预期生成,但当我运行可执行文件(使用生成的共享对象)时,.so也与可执行文件位于同一位置,但共享对象的.gcda文件未生成,而可执行代码的.gcda文件按预期生成。 方法有问题吗?
请告知

有可能获得共享图书馆的保险范围。 我尝试了使用gcov和共享库概念进行简单的hello应用程序评测,我能够获得代码覆盖率。 让我们看两个文件hello.c和extlib.c

首先编译extlib.c

#include <stdio.h>

extern void print(const char* p, ...);

void print(const char* p, ...) {
    printf("%s World!\n", p);
gcc hello.c-L./-lextlib-o测试-ftest覆盖率-fprofile弧

在这个hello.gcno文件之后。 执行
/test

执行后将获得extlib.gcda和hello.gcda

使用
gcov*.c
可以检查覆盖范围


因此,我的建议是在您的项目中尝试使用gcov profiling单独编译一些简单的文件。

我有gcc 4.1工具链的可能副本,它是否受上面参考gcc 4.5共享的4.1链接的支持?您能否提供编译位置和可执行文件运行位置的详细信息,i、 你是否在你构建的同一个地方运行你的可执行文件?是的,我的可执行文件在我构建的同一个地方,所以(可执行文件使用的)存在于同一个目录(作为exec)[我构建的同一个地方]
int main() {
    print("Hello");
}