如何在 ARM 上编译 neon

How to compile neon on ARM

我用了

arm-linux-gnueabi-g++ test.cpp -march=armv7-a -mfloat-abi=softfp -mfpu=neon -o test

在 ubantu 上获取 ARM 上的可执行文件,但是当我 运行

adb push ./test /data/test
adb shell
cd data
chmod 777 test
./test

我收到以下错误:

./system/bin/sh: ./test: No such file or directory

我对此感到困惑。

如果您打算 运行 Android 上的可执行文件(看起来),最好使用 Android NDK 构建它。问题是你的可执行文件 links 到 glibc,它在普通 linux 系统上可用,但在 Android 上不可用。 (详细来说,可执行文件无法启动,因为它需要 linker /lib/ld-linux.so.3 Android 上不可用的动态 link。此外,它还需要 Android 形式的 glibc =11=].)

如果您使用 Android NDK 构建可执行文件,它将 link 到 Bionic libc,这是 Android.

上可用的

或者,如果您在 linking 时添加 -static (在您的情况下,在您的单个 compile+link 命令中),您将获得一个静态可执行文件,它应该可以工作在正常 linux 和 Android.