[求助]Android下可用的ltrace,最好是静态链接版本 或编译方法
发表于:
2016-6-17 17:02
8777
[求助]Android下可用的ltrace,最好是静态链接版本 或编译方法
试验了几天,随源码也没编译出Android版本的ltrace,看Android官方公告,Disable ltrace build,应该是一个依赖库不能用clang编译。我在4.4源码中用0.5.3ltrace编译是总是报Libiberty不对。在6.0源码中编译0.7.9版本时mmm不起作用,我修改了Android .mk的条件编译也不灵。谷歌和百度了很多资料都没有找到解决方案,请各位大侠指点。
这是我用对立工具链编译时的错误,用的是NDK11版的独立工具链,出错情况和在4.4源码编译时相同。编译已经通过了,就是找不到库。其实是不兼容warning: skipping incompatible。因为没有4.4的出错信息,就用这个代替。独立工具链版本不兼容正常,因为是4.4源码带的,和R11的版本不同。可是6.0源码就是没有ARM版本的Libiberty。
/home/yj/toolchain/bin/arm-linux-androideabi-gcc main.o libltrace.a -lelf -lsupc++ -liberty -o ltrace
/home/yj/toolchain/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld: warning: skipping incompatible /home/yj/toolchain/bin/../sysroot/usr/lib/libiberty.a while searching for iberty
/home/yj/toolchain/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld: warning: skipping incompatible /home/yj/toolchain/bin/../sysroot/usr/lib/libiberty.a while searching for iberty
/home/yj/toolchain/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld: error: cannot find -liberty
read_config_file.c:86: error: undefined reference to 'index'
demangle.c:32: error: undefined reference to 'cplus_demangle'
elf.c:48: error: undefined reference to 'error'
elf.c:55: error: undefined reference to 'error'
elf.c:70: error: undefined reference to 'error'
elf.c:252: error: undefined reference to 'error'
external/elfutils/libelf/elf_error.c:383: error: undefined reference to 'dgettext'
collect2: error: ld returned 1 exit status
make: *** [ltrace] 错误 1
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!