Ubuntu 16.04 下使用 mingw 时缺少 gcov 符号

Ubuntu 16.04 下使用 mingw 时缺少 gcov 符号

在从 Ubuntu 14.04 升级到 Ubuntu 16.04 之前,我可以使用 mingw-64-gcc 编译以下代码

x86_64-w64-mingw32-gcc -fprofile-generate -o 测试.exe 测试.c -lgcov -static

//test.c
#include <stdio.h>
int main(void)
{puts("test");return 0;}

现在由于缺少__gcov 符号,程序无法链接。

x86_64-w64-mingw32-gcc -fprofile-generate -o test test.c
/tmp/cccj8pnx.o:test.c:(.text+0x1a): undefined reference to `__gcov_indirect_call_profiler_v2'
/tmp/cccj8pnx.o:test.c:(.text+0x46): undefined reference to `__gcov_time_profiler'
/tmp/cccj8pnx.o:test.c:(.data+0xa0): undefined reference to `__gcov_merge_time_profile'
/tmp/cccj8pnx.o:test.c:(.rdata$.refptr.__gcov_indirect_call_callee[.refptr.__gcov_indirect_call_callee]+0x0): undefined reference to `__gcov_indirect_call_callee'
collect2: error: ld returned 1 exit status

两个 Ubuntu 版本之间有什么变化。任何帮助都将不胜感激。

答案1

我遇到了同样的问题,我能够通过链接到-fprofile-arcs而不是来解决这个问题-lgcov

相关内容