yuhuo1989 发表于 2015-5-10 21:43:21

在单板上执行自己的程序报错

我通过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 #


lr6410 发表于 2015-5-11 10:15:53

这种问题,有可能是编译器用得不对。

先在板上执行命令:file test,看看test是不是arm的程序,如果是的,你使用的什么编译器
应用程序用gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux编译是没问题的。你可以去linaro官网下载

yuhuo1989 发表于 2015-5-11 19:03:49

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:08:31

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

yuhuo1989 发表于 2015-5-12 20:26:38

此问题已解决,特此结贴!

原因是板子上缺少动态库。编译成静态文件即可运行。

busybee 发表于 2015-5-13 09:55:55

如果要移植程序放到 Android 上跑的话,有两种选择:
1 静态编译,就是楼主所用的方法。
2 用 Android NDK 编译。

用 arm-linux-gnueabihf-gcc 编译出来的动态链接的应用,只能在板子的 Ubuntu 系统下跑。

yuhuo1989 发表于 2015-5-13 11:48:14

busybee 发表于 2015-5-13 09:55
如果要移植程序放到 Android 上跑的话,有两种选择:
1 静态编译,就是楼主所用的方法。
2 用 Android ND ...

还有一种尝试的方法,把动态库也一并拷入板子,然后修改PATH。不过这种方式我尝试失败。不知为什么
页: [1]
查看完整版本: 在单板上执行自己的程序报错