先来描述下问题:本人新手,在项目中需要使用到arm开发板,各种麻烦,最后在pc上配好了交叉编译环境,写了一个简单的hello world程序,
#include<stdio.h>
int main(){
printf("hello world");
return 0;
}
在linux编译出了可执行文件…最后通过Windows下的ftp软件传到了开发板上面运行,没想到输入了./helloword后开发板终端居然显示segmentation fault!!!
本新手顿时感到头皮发麻,开始了各种网上寻找办法…网上所说segmentation fault是为段错误,多出现在对指针的非法操作上面。问题是这跟我这简简单单的小程序有何干系!
最后请教了有经验的人士,他表示这样的错误很可能并不是代码本身的问题,而是ftp软件的问题,Windows下使用ftp传输可执行文件可能会使该可执行文件被传输得不完整!!这才是我这个疑难杂症的症结所在!(传其他文件倒好像还没有出现过问题)本人最后使用u盘互传,顺利地执行了程序文件,解决了问题。
在此附上本问题相关的一些文章:
arm开发板挂载u盘:
https://blog.csdn.net/qq_41980584/article/details/81609366
segmentation fault错误原因总结:
https://blog.csdn.net/u010150046/article/details/77775114
据说使用linux下的ftp传输直接将可执行文件传给开发板也能避免此问题,但是本人没有尝试过,大家可以去试一下,其实比用u盘更为方便。