android GCC中的gcov符号在哪里?

时间:2013-05-27 06:05:38

标签: android undefined-reference gcov

我正在尝试使用gcov编译android .so文件并获取以下链接错误: 在函数全局构造函数中键入0_XXX:../../ source / file1.cpp:2661:错误:未定义引用'__gcov_init' in function .LPBX0:file1.cpp(.data.rel + 0x24):错误:未定义引用'__gcov_merge_add' 在函数全局构造函数中键入0_funcname:../../ source / file2.cpp:2154:错误:未定义引用'__gcov_init' in function .LPBX0:file2.cpp(.data.rel + 0x24):错误:未定义引用'__gcov_merge_add' “ collect2:ld返回1退出状态 make: * [xxx.so]错误1

我的android makefile更改:CFLAGS + = --coverage,LOCAL_LDLIBS + = --coverage。 我似乎找不到丢失符号的位置。我的android工具链gcc版本4.6。 有任何想法吗?感谢。

2 个答案:

答案 0 :(得分:0)

您可以在Android.mk中添加以下行:

LOCAL_CFLAGS + = -fprofile-arcs -ftest-coverage

LOCAL_LDFLAGS + = -lgcov

答案 1 :(得分:0)

使用这3行更改Android.mk

1) LOCAL_LDLIBS + = -l(libgcov的绝对路径或相对路径)

例如: LOCAL_LDLIBS + = -l / home / souradeep.c / JFLTEATT / android / prebuilts / gcc / linux-x86 / arm / arm-eabi-4.6 / lib / gcc / arm-eabi / 4.6.x-google / libgcov.a < / p>

2) LOCAL_LDFLAGS + = -fprofile-arcs (这是链接重要的符号未找到问题所必需的)

3) LOCAL_CFLAGS + = -fprofile-arcs -ftest-coverage

                   or

3) LOCAL_CPPFLAGS + = -fprofile-arcs -ftest-coverage

享受.......................................