2012-03-29 59 views
6

我正在使用android-ndk-profiler-3.1爲我的項目進行NDK分析。我在Android.mk所做的更改如下...NDK分析顯示「.so沒有符號」

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()的開頭;功能在停止方法中。並且gmon.out文件已經成功創建。然後我將gmon.out粘貼到D:\ android \ android-ndk-r6-windows \ android-ndk-r6 \ toolchains \ arm-linux-androideabi-4.4.3 \預編譯\ 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 

我不能夠做出來的爲什麼這個錯誤即將到來,我已經做得很好。

任何人都可以請幫助我。

任何幫助將不勝感激。

在此先感謝。

回答

6

NDK構建過程會創建2個庫,其中一個帶有符號,另一個則不帶。在APK中安裝剝離的無符號庫,但您需要使用gprof的未剝離版本。如果你運行:

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

...那麼應該是正確的庫。

+0

非常感謝您的回覆......我不知道這一點。現在我的問題解決了。 :) – geeta 2012-03-30 04:40:01