在单板上执行自己的程序报错
我通过U盘挂载的方式将自己的app程序拷贝了单板下shell@rk3288:/data/local/test # ll-rwxrwxrwx root root 8698 2011-01-01 13:26 test
shell@rk3288:/data/local/test # 程序名称是test。但怎么执行它呢?直接执行会报错,把文件当做了文件夹。请大神指点?
shell@rk3288:/data/local/test # ./test
sh: ./test: No such file or directory
shell@rk3288:/data/local/test #
这种问题,有可能是编译器用得不对。
先在板上执行命令:file test,看看test是不是arm的程序,如果是的,你使用的什么编译器
应用程序用gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux编译是没问题的。你可以去linaro官网下载 lr6410 发表于 2015-5-11 10:15
这种问题,有可能是编译器用得不对。
先在板上执行命令:file test,看看test是不是arm的程序,如果是的 ...
单板上连file命令都没有,shell@rk3288:/data/local/test # file test
sh: file: not found我用的交叉编译工具是“arm-linux-gnueabihf-gcc”,不知道对不对?
yuhuo1989 发表于 2015-5-11 19:03
单板上连file命令都没有,我用的交叉编译工具是“arm-linux-gnueabihf-gcc”,不知道对不对?
在我的PC机系统中下发“file test”
wsf@ubuntu:~/share/firefly-rk3288_pad/test$ file test
test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, BuildID=0x888ea7ddcede1e3de0709381ecc6a2917070fed6, not stripped
此问题已解决,特此结贴!
原因是板子上缺少动态库。编译成静态文件即可运行。
如果要移植程序放到 Android 上跑的话,有两种选择:
1 静态编译,就是楼主所用的方法。
2 用 Android NDK 编译。
用 arm-linux-gnueabihf-gcc 编译出来的动态链接的应用,只能在板子的 Ubuntu 系统下跑。 busybee 发表于 2015-5-13 09:55
如果要移植程序放到 Android 上跑的话,有两种选择:
1 静态编译,就是楼主所用的方法。
2 用 Android ND ...
还有一种尝试的方法,把动态库也一并拷入板子,然后修改PATH。不过这种方式我尝试失败。不知为什么
页:
[1]