2012-03-29 7 views
6

Robię profilowanie NDK dla mojego projektu za pomocą Androida-ndk-profiler-3.1. I zostały wprowadzone zmiany w Android.mk następująco ...Profilowanie NDK pokazujące ".so nie ma symboli"

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 jest następująca ...

APP_ABI := armeabi 
APP_PLATFORM := android-10 

nazwałem monstartup ("itv.so"); funkcja na początku macierzystego kodu i moncleanup(); funkcja w metodzie zatrzymania. Plik gmon.out został pomyślnie utworzony. Następnie wkleiłem plik gmon.out w wersji D: \ android \ android-ndk-r6-windows \ android-ndk-r6 \ toolchains \ arm-linux-androideabi-4.4.3 \ wstępnie skompilowany katalog \ windows \ bin.

Ale gdy próbuję czytać gmon.out pomocą następującego polecenia ...

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 

Ten błąd jest wyświetlany ...

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

nie jestem w stanie zrozumieć, dlaczego ten błąd nadchodzi, nawet ja zrobiłem wszystko dobrze.

Czy ktokolwiek może mi pomóc.

Każda pomoc zostanie doceniona.

Dzięki z góry.

Odpowiedz

6

Proces budowania NDK tworzy 2 biblioteki, jedną z symbolami i jedną bez. Instalujesz pozbawioną symboli bibliotekę w swoim pakiecie APK, ale musisz użyć wersji niezajętej z gprof. Jeśli uruchomisz:

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

... to powinna być poprawna biblioteka.

+0

Dziękuję bardzo za odpowiedź ... Nie wiedziałem o tym. Teraz mój problem został rozwiązany. :) – geeta