为Android构建Valgrind

时间:2013-02-28 08:48:19

标签: android android-ndk valgrind

使用ndk-r6或ndk-r8d在ubuntu 12.04上构建valgrind-3.8.1失败,并出现以下错误:

...
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    

:)

有什么想法吗?致谢

我也会接受建造的二进制文件;))

2 个答案:

答案 0 :(得分:10)

对于如何构建适用于Android的Valgrind(ARM),请参阅:https://stackoverflow.com/a/19255251/313113

如何通过Valgrind运行您的应用请参阅:https://stackoverflow.com/a/19235439/313113

答案 1 :(得分:2)

按照此页面上的说明操作: http://valgrind.org/docs/manual/dist.readme-android.html

你没有为你的应用程序编译valgrind as embbeded,但你在你的计算机上编译一个与arm兼容的valgrind二进制文件,与android-ndk库链接,然后你可以在你的设备或模拟器上的某个文件夹上运送valgrind 。这大约是130 Mb的数据。

请注意,设备必须是root。

然后,每当你想用你的Android应用程序运行valgrind时,你必须将valgrind附加到应用程序。为此,请查看此处:How to start an android app with valgrind