NDK分析显示“.so没有符号”

时间:2012-03-29 10:50:29

标签: android-ndk profiling

我正在使用android-ndk-profiler-3.1为我的项目进行NDK分析。我在Android.mk中进行了如下更改...

LOCAL_PATH := $(call my-dir)
 -include android-ndk-profiler.mk
include $(CLEAR_VARS)

# Module name -------------------------------------------------------
LOCAL_CFLAGS += -O3 
TARGET_ARCH_ABI :=armeabi
LOCAL_CFLAGS := -pg
LOCAL_STATIC_LIBRARIES := andprof
LOCAL_LDLIBS += -llog
LOCAL_MODULE := libitv

include $(BUILD_SHARED_LIBRARY)

Application.mk如下......

APP_ABI := armeabi
APP_PLATFORM := android-10

我打电话给monstartup(“itv.so”);函数在本机代码和moncleanup()的开头;在stop方法中起作用。并且gmon.out文件已成功创建。然后我已将gmon.out粘贴到 D:\ android \ android-ndk-r6-windows \ android-ndk-r6 \ toolchains \ arm-linux-androideabi-4.4.3 \ prebuilt \ windows \ bin目录。

但是当我尝试使用以下命令读取gmon.out时......

D:\android\android-ndk-r6-windows\android-ndk-r6\toolchains\arm-linux-androideab
i-4.4.3\prebuilt\windows\bin>arm-linux-androideabi-gprof D:\InternetTV_FD_Canvas
\libs\armeabi\libitv.so > out.txt

此错误正在显示......

arm-linux-androideabi-gprof: file `D:\InternetTV_FD_Canvas\libs\armeabi\libitv.so'
 has no symbols

即使我做得很好,我也无法弄清楚为什么会出现这种错误。

任何人都可以帮助我。

任何帮助将不胜感激。

先谢谢。

1 个答案:

答案 0 :(得分:6)

NDK构建过程创建了2个库,一个带有符号,另一个带有剥离。您在APK中安装了剥离的无符号库,但是您需要使用带有gprof的未剥离版本。如果您运行:

arm-linux-androideabi-gprof D:\InternetTV_FD_Canvas\obj\local\armeabi\libitv.so

...那应该是正确的库。