NDK分析显示".so没有符号"

gee*_*eta 6 profiling android-ndk

我正在使用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)
Run Code Online (Sandbox Code Playgroud)

Application.mk如下......

APP_ABI := armeabi
APP_PLATFORM := android-10
Run Code Online (Sandbox Code Playgroud)

我叫monstartup("itv.so"); 函数在本机代码和moncleanup()的开头; 在stop方法中起作用.并成功创建了gmon.out文件.然后我在D:\ android\android-ndk-r6-windows\android-ndk-r6\toolchains\arm-linux-androideabi-4.4.3\prebuilt中粘贴了gmon.out\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
Run Code Online (Sandbox Code Playgroud)

此错误显示...

arm-linux-androideabi-gprof: file `D:\InternetTV_FD_Canvas\libs\armeabi\libitv.so'
 has no symbols
Run Code Online (Sandbox Code Playgroud)

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

任何人都可以帮助我.

任何帮助将不胜感激.

提前致谢.

ric*_*chq 6

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

arm-linux-androideabi-gprof D:\InternetTV_FD_Canvas\obj\local\armeabi\libitv.so
Run Code Online (Sandbox Code Playgroud)

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