我用过
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
我对此感到困惑。
答案 0 :(得分:0)
如果您打算在Android上运行可执行文件(看起来如此),理想情况下应该使用Android NDK构建它。问题是您的可执行文件链接到glibc,这可以在普通的Linux系统上使用,但不能在Android上使用。 (具体来说,可执行文件无法启动,因为它需要动态链接器/lib/ld-linux.so.3
,这在Android上是不可用的。此外,它还需要libc.so.6
形式的glibc。)
如果您使用Android NDK构建可执行文件,它将链接到Bionic libc,这是Android上可用的。
或者,如果在链接时添加-static
(在您的情况下,在单个编译+链接命令中),您将获得一个静态可执行文件,它应该适用于普通的Linux和Android。