我正在尝试使用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。 有任何想法吗?感谢。
答案 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
享受.......................................