5

使用 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    

:)

有任何想法吗?谢谢

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

4

2 回答 2

10

有关如何为 Android (ARM) 构建 Valgrind,请参阅:https ://stackoverflow.com/a/19255251/313113

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

于 2013-10-08T18:21:45.397 回答
2

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

您不会将 valgrind 编译为嵌入到您的应用程序中,而是在您的计算机上编译与 arm 兼容的 valgrind 二进制文件,并与 android-ndk 库链接,然后您可以将 valgrind 发送到设备或模拟器上的某个文件夹中。这大约是 130 Mb 的数据。

请注意,设备必须植根。

然后,无论何时你想用你的 android 应用程序运行 valgrind,你都必须将 valgrind 附加到应用程序。为此,请看这里:How to start an android app with valgrind

于 2013-04-10T09:56:09.620 回答