菩提本无树,明镜变非台 本来无一物,何处惹尘埃
分类: 嵌入式
2010-08-20 20:16:57
问题描述 |
在主机上用交叉编译工具编译的可执行文件,然后放到开放板上,不能运行,出现这种提示“-/bin/sh: ./test: not found ” |
||
问题分析
|
在PC上,用“file”命令查看可执行文件属性为 “test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped”,可以看出文件为elf格式可执行文件格式,运行的目标平台是ARM,采用动态链接。采用动态链接的话,如果开发板上没有相应的库文件,是运行不起来的 |
||
解决方案 |
用编译时加上“-static”参数,表示静态链接编译。然后再放到目标板上运行。这次就可以了! |
||
心得体会 (注意事项) |
要移植相应的库文件到目标板上,这样,就不会由于静态编译,而产生文件体积大!但移植库文件也会占用一定的存储空间!
|