如何在 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.
上
我用了
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.