2013-02-28 41 views
5

大廈在Ubuntu 12.04使用NDK-R6或NDK-R 8d中的valgrind-3.8.1失敗,出現以下錯誤:Valgrind的建設爲Android

... 
cc1: Error: not rekognized option "-marm" 
priv/main_globals.c:1:0: Error: wrong Value (cortex-a8) for -mtune=switch 
... 

我的構建腳本:

export NDKROOT=/home/stefan/android-ndk-r6-crystax-2 
export HWKIND=generic 
PATH=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin:$PATH 
PATH=$PATH:$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/libexec/gcc/arm-linux-androideabi/4.4.3 
export CROSS_COMPILE=arm-linux-androideabi- 
export AR=${CROSS_COMPLIE}ar 
export LD=${CROSS_COMPLIE}ld 
export CC=${CROSS_COMPLIE}gcc 
export CXX=${CROSS_COMPLIE}g++ 
export CPP=${CROSS_COMPLIE}cpp 

./autogen.sh CPPFLAGS="--sysroot=$NDKROOT/platforms/android-3/arch-arm -DANDROID_HARDWARE_$HWKIND" CFLAGS="--sysroot=$NDKROOT/platforms/android-3/arch-arm" 
./configure --prefix=/data/local/Inst --host=armv7-unknown-linux --target=armv7-unknown-linux --with-tmpdir=/tmp 

最後

make  

:)

任何想法?感謝

而且我會接受建造的二進制文件;))

+0

有一個Android。 mk可用於Android源代碼樹中的Valgrind。見例如https://android.googlesource.com/platform/external/valgrind/+/master/main – Michael 2013-02-28 09:31:06

+0

很酷,我會檢查一下! :) – oc1d 2013-02-28 11:20:17

+0

嗯..但如何實際編譯呢?放在jni文件夾中?有了這個,在Android.mk中沒有定義包含路徑,並且構建失敗:( – oc1d 2013-02-28 15:00:00

回答

2

按照此頁面上的說明: http://valgrind.org/docs/manual/dist.readme-android.html

爲embbeded爲您的應用程序不編譯Valgrind的,但你編譯手臂兼容您的計算機上的valgrind二進制文件,與android-ndk庫鏈接,然後您可以將valgrind發佈到設備或模擬器上的某個文件夾中。這大約有130 Mb的數據。

請注意,該設備必須是根。

然後,只要你想運行你的Android應用程序的valgrind,你將不得不將valgrind附加到應用程序。對於這一點,看看這裏:How to start an android app with valgrind