使用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
:)
有什么想法吗?致谢
我也会接受建造的二进制文件;))
答案 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